Systems and methods for triggering actions based on touch-free gesture detection

ABSTRACT

Systems, methods and non-transitory computer-readable media for triggering actions based on touch-free gesture detection are disclosed. The disclosed systems may include at least one processor. A processor may be configured to receive image information from an image sensor, detect in the image information a gesture performed by a user, detect a location of the gesture in the image information, access information associated with at least one control boundary, the control boundary relating to a physical dimension of a device in a field of view of the user, or a physical dimension of a body of the user as perceived by the image sensor, and cause an action associated with the detected gesture, the detected gesture location, and a relationship between the detected gesture location and the control boundary.

PRIORITY CLAIM

This application is a continuation of application Ser. No. 16/725,030,filed Dec. 23, 2019, which is a continuation of application Ser. No.16/703,759, filed on Dec. 4, 2019, which is a continuation-in-part ofapplication Ser. No. 16/272,292, filed on Feb. 11, 2019, which is acontinuation of application Ser. No. 15/055,958, filed on Feb. 29, 2016,which is a continuation of application Ser. No. 14/078,636, filed onNov. 13, 2013 and issued as U.S. Pat. No. 9,274,608 on Mar. 1, 2016,which claims the benefit of provisional application No. 61/725,559,filed on Dec. 13, 2012. The priority applications are all incorporatedherein by reference in their entirety.

TECHNICAL FIELD

The present disclosure relates to the field of touch-free gesturedetection and, more particularly, systems and computer-readable mediafor causing an action to occur based on a detected touch-free gestureusing a control boundary. More particularly, the present disclosurerelates to the use of machine learning algorithms to predict usergestures, behavior, or activity.

BACKGROUND

Permitting a user to interact with a device or an application running ona device is useful in many different settings. For example, keyboards,mice, and joysticks are often included with electronic systems to enablea user to input data, manipulate data, and cause a processor of thesystem to cause a variety of other actions. Traditional vehicularcontrol devices also primarily use buttons, switches, levers, and othertouch-based inputs. Increasingly, however, touch-based input devices,such as keyboards, mice, buttons, switches, and joysticks, are beingreplaced by, or supplemented with, devices that permit touch-free userinteraction. For example, a system may include an image sensor tocapture images of a user, including, for example, a user's hands and/orfingers. A processor may be configured to receive such images and causeactions to occur based on touch-free gestures performed by the user.

It may be desirable to permit a user to make a number of differenttouch-free gestures that can be recognized by a system. However, thenumber of different types of touch-free gestures that can be detectedand acted upon by a system is often limited. Improvements in techniquesfor detecting and acting upon touch-free gestures are desirable.

SUMMARY

In one disclosed embodiment, a touch-free gesture recognition system isdescribed. The touch-free gesture recognition system may include atleast one processor configured to receive image information from animage sensor, detect in the image information a gesture performed by auser, detect a location of the gesture in the image information, accessinformation associated with at least one control boundary, the controlboundary relating to a physical dimension of a device in a field of viewof the user, or a physical dimension of a body of the user as perceivedby the image sensor and cause an action associated with the detectedgesture, the detected gesture location, and a relationship between thedetected gesture location and the control boundary.

In another disclosed embodiment, a non-transitory computer-readablemedium is described. The non-transitory computer-readable medium mayinclude instructions that, when executed by a processor, cause theprocessor to perform operations. The operations include receiving imageinformation from an image sensor, detecting in the image information agesture performed by a user, detecting a location of the gesture in theimage information, accessing information associated with at least onecontrol boundary, the control boundary relating to a physical dimensionof a device in a field of view of the user, or a physical dimension of abody of the user as perceived by the image sensor, and causing an actionassociated with the detected gesture, the detected gesture location, anda relationship between the detected gesture location and the controlboundary.

Additional aspects related to the embodiments will be set forth in partin the description which follows, and in part will be understood fromthe description, or may be learned by practice of the invention.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example touch-free gesture recognition system thatmay be used for implementing the disclosed embodiments.

FIG. 2 illustrates example operations that a processor of a touch-freegesture recognition system may be configured to perform, in accordancewith some of the disclosed embodiments.

FIG. 3 illustrates an example implementation of a touch-free gesturerecognition system in accordance with some of the disclosed embodiments.

FIG. 4 illustrates another example implementation of a touch-freegesture recognition system in accordance with some of the disclosedembodiments.

FIGS. 5A-5L illustrate graphical representations of example motion pathsthat may be associated with touch-free gesture systems and methodsconsistent with the disclosed embodiments.

FIG. 6 illustrates a few exemplary hand poses that may be associatedwith touch-free gesture systems and methods consistent with thedisclosed embodiments.

DETAILED DESCRIPTION

Reference will now be made in detail to the example embodiments, whichare illustrated in the accompanying drawings. Wherever possible, thesame reference numbers will be used throughout the drawings to refer tothe same or like parts.

A touch-free gesture recognition system is disclosed. A touch-freegesture recognition system may be any system in which, at least at somepoint during user interaction, the user is able to interact withoutphysically contacting an interface such as, for example, a keyboard,mouse, or joystick. In some embodiments, the system includes at leastone processor configured to receive image information from an imagesensor. The processor may be configured to detect in the imageinformation of a gesture performed by the user (e.g., a hand gesture)and to detect a location of the gesture in the image information.Moreover, in some embodiments, the processor is configured to accessinformation associated with at least one control boundary, the controlboundary relating to a physical dimension of a device in a field of viewof the user, or a physical dimension of a body of the user as perceivedby the image sensor. For example, and as described later in greaterdetail, a control boundary may be representative of an orthogonalprojection of the physical edges of a device (e.g., a display) into 3Dspace or a projection of the physical edges of the device as is expectedto be perceived by the user. Alternatively, or additionally, a controlboundary may be representative of, for example, a boundary associatedwith the user's body (e.g., a contour of at least a portion of a user'sbody or a bounding shape such as a rectangular-shape surrounding acontour of a portion of the user's body). As described later in greaterdetail, a body of the user as perceived by the image sensor includes,for example, any portion of the image information captured by the imagesensor that is associated with the visual appearance of the user's body.

In some embodiments, the processor is configured to cause an actionassociated with the detected gesture, the detected gesture location, anda relationship between the detected gesture location and the controlboundary. The action performed by the processor may be, for example,generation of a message or execution of a command associated with thegesture. For example, the generated message or command may be addressedto any type of destination including, but not limited to, an operatingsystem, one or more services, one or more applications, one or moredevices, one or more remote applications, one or more remote services,or one or more remote devices.

For example, the action performed by the processor may comprisecommunicating with an external device or website responsive to selectionof a graphical element. For example, the communication may includesending a message to an application running on the external device, aservice running on the external device, an operating system running onthe external device, a process running on the external device, one ormore applications running on a processor of the external device, asoftware program running in the background of the external device, or toone or more services running on the external device. Moreover, forexample, the action may include sending a message to an applicationrunning on a device, a service running on the device, an operatingsystem running on the device, a process running on the device, one ormore applications running on a processor of the device, a softwareprogram running in the background of the device, or to one or moreservices running on the device.

The action may also include, for example, responsive to a selection of agraphical element, sending a message requesting data relating to agraphical element identified in an image from an application running onthe external device, a service running on the external device, anoperating system running on the external device, a process running onthe external device, one or more applications running on a processor ofthe external device, a software program running in the background of theexternal device, or to one or more services running on the externaldevice. The action may also include, for example, responsive to aselection of a graphical element, sending a message requesting a datarelating to a graphical element identified in an image from anapplication running on a device, a service running on the device, anoperating system running on the device, a process running on the device,one or more applications running on a processor of the device, asoftware program running in the background of the device, or to one ormore services running on the device.

The action may also include a command selected, for example, from acommand to run an application on the external device or website, acommand to stop an application running on the external device orwebsite, a command to activate a service running on the external deviceor website, a command to stop a service running on the external deviceor website, or a command to send data relating to a graphical elementidentified in an image.

In some embodiments, the processor may be configured to collectinformation associated with the detected gesture, the detected gesturelocation, and/or a relationship between the detected gesture locationand a control boundary over a period of time. The processor may storethe collected information in memory. The collected informationassociated with the detected gesture, gesture location, and/orrelationship between the detected gesture location and the controlboundary may be used to predict user behavior.

In some embodiments, the processor may be configured to implement one ormore machine learning techniques and algorithms to facilitate userbehavior detection/predictions. In some embodiments, machinelearning-based detection of user behavior may be performed offline bytraining or “teaching” a CNN (convolution neural network) user/driverbehaviors using a database of images and videos of different users'behaviors (such as images/video of behaviors taking place in a vehicle,such as one or more users eating, talking, fixing theirglasses/hair/makeup, searching for an item in a bag, holding a mobilephone, operating a device, touching etc.). In some embodiments, thedetection of user behavior by machine learning take place by offline“teaching” of a neural network of different events/actions performed bya user/driver (such as user reaching toward an item, a user selecting anitem, a user picking up an item, a user bring the item closer to hisface, a user chewing, a user turn his or her head, a user looking aside,a user reaching toward an item behind them or in the back of a room orvehicle, a user talking, a user looking toward a main mirror such as acenter rear-view mirror, a user shutting an item such as a door orcompartment, a user coughing, or a user sneezing). Then, the system maydetect determine, and/or predict the user behavior using a combinationof one or more actions)/event(s) that were detected. Those of skill inthe art will understand that the term “machine learning” isnon-limiting, and may include techniques such as, but not limited to,computer vision learning, deep machine learning, deep learning and deepneural networks, neural networks, artificial intelligence, and onlinelearning, i.e. learning during operation of the system. Machine learningmay include one or more algorithms and mathematical models implementedand running on a processing device. The mathematical models that areimplemented in a machine learning system may enable a system to learnand improve from data based on its statistical characteristics rather onpredefined rules of human experts. Machine learning may also involvecomputer programs that can automatically access data and use theaccessed data to “learn” how to perform a certain task without the inputof detailed instructions for that task by a programmer.

Machine learning mathematical models may be shaped according to thestructure of the machine learning system, supervised or unsupervised,the flow of data within the system, the input data and externaltriggers. In some aspects, machine learning can be related as anapplication of artificial intelligence (AI) that provides systems theability to automatically learn and improve from data input without beingexplicitly programmed.

Machine learning may apply to various tasks, such as feature learningalgorithms, sparse dictionary learning, anomaly detection, associationrule learning, and collaborative filtering for recommendation systems.Machine learning may be used for feature extraction, dimensionalityreduction, clustering, classifications, regression, or metric learning.Machine learning system may be supervised and semi-supervised,unsupervised, reinforced. Machine learning system may be implemented invarious ways including linear and logistic regression, lineardiscriminant analysis, support vector machines (SVM), decision trees,random forests, ferns, Bayesian networks, boosting, genetic algorithms,simulated annealing, or convolutional neural networks (CNN).

Deep learning is a special implementation of a machine learning system.In one example, deep learning algorithms may discover multiple levels ofrepresentation, or a hierarchy of features, with higher-level, moreabstract features extracted using lower-level features. Deep learningmay be implemented in various feedforward or recurrent architecturesincluding multi-layered perceptrons, convolutional neural networks, deepneural networks, deep belief networks, autoencoders, long short termmemory (LSTM) networks, generative adversarial networks, and deepreinforcement networks.

The architectures mentioned above are not mutually exclusive and can becombined or used as building blocks for implementing other types of deepnetworks. For example, deep belief networks may be implemented usingautoencoders. In turn, autoencoders may be implemented usingmulti-layered perceptrons or convolutional neural networks.

Training of a deep neural network may be cast as an optimization problemthat involves minimizing a predefined objective (loss) function, whichis a function of predetermined network parameters, actual measured ordetected values, and desired predictions of those values. The goal is tominimize the differences between the actual value and the desiredprediction by adjusting the network's parameters. In some embodiments,the optimization process is based on a stochastic gradient descentmethod which is typically implemented using a back-propagationalgorithm. However, for some operating regimes, such as in onlinelearning scenarios, stochastic gradient descent has variousshortcomings, and other optimization methods may be employed to addressthese shortcomings. In some embodiments, deep neural networks may beused for predicting various human traits, behavior and actions frominput sensor data such as still images, videos, sound and speech.

In some embodiments, machine learning system may go through multipleperiods, such as, for example, an offline learning period and areal-time execution period. In the offline learning period, data may beentered into a “black box” for processing. The “black box” may be adifferent structure for each neural network, and the values in the“black box” may define the behavior of the neural network. In theoffline learning period, the values in the “black box” may be changedautomatically. Some neural networks or structures may requiresupervision, while others may not. In some embodiments, the machinelearning system may not tag the data and extract only the outcomes. In areal-time execution period, the data may have entered through the neuralnetwork after the machine learning system finished the offline learningperiod. The values in the neural network may be fixed at this point.Unlike traditional algorithms, data entering the neural network may flowthrough the network instead of being stored or collected. After the dataflows through the network, the network may provide different outputs,such as model outputs.

In some embodiments, a deep recurrent long short-term memory (LSTM)network may be used to anticipate a vehicle driver's/operator'sbehavior, or predict their actions before it happens, based on acollection of sensor data from one or more sensors configured to collectimages such as video data, tactile feedback, and location data such asfrom a global positioning system (GPS). In some embodiments, predictionmay occur a few seconds before the action happens. A “vehicle” mayinclude a moving vessel or object that transports one or more persons orobjects across land, air, sea, or space. Examples of vehicles mayinclude a car, a motorcycle, a scooter, a truck, a bus, a sport utilityvehicle, a boat, a personal watercraft, a ship, a recreationalland/air/sea craft, a plane, a train, public/private transportation, ahelicopter, a Vertical Take Off and Landing (VTOL) aircraft, aspacecraft, a military aircraft or boat or wheeled transport, a dronethat is controlled/piloted by a remote driver, an autonomous flyingvehicle, and any other machine that may be driven, piloted, orcontrolled by a human user. In some embodiments, vehicles may alsoinclude semi-autonomous or autonomous vehicles such as self-drivingcars, autonomous driving or flying taxis, and other similar vehicles. Itis to be understood that “vehicles” may also encompass future types ofvehicles that transport persons from one location to another.

In some embodiments, the processor may be configured to implement one ormore machine learning techniques and algorithms to facilitatedetection/prediction of user behavior-related variables. The term“machine learning” is non-limiting, and may include techniques such as,but not limited to, computer vision learning, deep machine learning,deep learning, and deep neural networks, neural networks, artificialintelligence, and online learning, i.e. learning during operation of thesystem. Machine learning algorithms may detect one or more patterns incollected sensor data, such as image data, proximity sensor data, anddata from other types of sensors disclosed herein. A machine learningcomponent implemented by the processor may be trained using one or moretraining data sets based on correlations between collected sensor dataor saved data and user behavior related variables of interest. Saveddata may include data generated by another machine learning system,preprocessing analysis on received sensor data, and other dataassociated with the object or subject being observed by the system.Machine learning components may be continuously or periodically updatedbased on new training data sets and feedback loops.

Machine learning components can be used to detected or predictedgestures, motion, body posture, features associated with user alertness,driver alertness, fatigue, attentiveness to the road, distraction,features associated with expressions or emotions of a user, featuresassociated with gaze direction of a user, driver or passenger. In someembodiments, machine learning components may determine a correlation orconnection between a detected gaze direction (or change of gazedirection) of a user and a gesture that has occurred or is predicted tooccur. Machine learning components can be used to detect or predictactions including: talking, shouting, singing, driving, sleeping,resting, smoking, reading, texting, operating a device (such as a mobiledevice or vehicle instrument) holding a mobile device, holding a mobiledevice against the cheek or to the face, holding a mobile device by handfor texting or speakerphone calling, watching content, playing digitalgame, using a head mount device such as smart glasses for virtualreality (VR) or augmented reality (AR), device learning, interactingwith devices within a vehicle, buckling unbuckling or fixing a seatbelt, wearing a seat belt, wearing a seat belt in a proper form, wearinga seatbelt in an improper form, opening a window, closing a window,getting in or out of the vehicle, attempting to open/close orunlock/lock a door, picking an object, looking/searching for an object,receiving an object through the window or door such as a ticket or food,reaching through the window or door while remaining seated, opening acompartment in the vehicle, raising a hand or object to shield againstbright light while driving, interacting with other passengers, fixing orrepositioning of eyeglasses, placing or removing or fixing eye contactlenses, fixing of hair or clothes, applying or removing makeup orlipstick, dressing or undressing, engaging in sexual activities,committing violent acts, looking at a mirror, communicating with anotherone or more persons/systems/AI entities using a digital device, learningthe vehicle interior, features and characteristics associated with userbehavior, interaction between the user and the environment, interactionwith another person, activity of the user, an emotional state of theuser, or an emotional responses in relation to: displayed/presentedcontent, an event, a trigger, another person, one or more objects, oruser activity in the vehicle.

In some embodiments, actions can be detected or predicted by analyzingvisual input from one or more image sensor, including analyzing movementpatterns of different part of the user body (such as different part ofthe user face including: mouse, eyes and head pose, movement of theuser's arms/hands, movement or change of the user posture), detecting inthe visual input interaction of the user with his/her surrounding (suchas interaction with item in the interior of a vehicle, items in thevehicle, digital devices, personal items (such as a bag), other person.In some embodiments, actions can be detected or predicted by analyzingvisual input from one or more image sensor and input from other sensorssuch as one or more microphone, one or more pressure sensor, one or morehealth status detection device or sensor. In some embodiments, theactions can be detected or predicted by analyzing input from one or moresensor and data from an application or online service.

Machine learning components can be used to detect: facial attributesincluding: head pose, gaze, face and facial attributes 3D location,facial expression; facial landmarks including: mouth, eyes, neck, nose,eyelids, iris, pupil; facial accessories including: glasses/sunglasses,piercings/earrings, or makeup; facial actions including: talking,yawning, blinking, pupil dilation, being surprised; occluding the facewith other body parts (such as hand, fingers), with other object held bythe user (a cap, food, phone), by other person (other person hand) orobject (part of the vehicle), user unique expressions (such as TouretteSyndrome related expressions).

Machine learning system may use input from one or more systems in thecar, including Advanced Driver Assistance System (ADAS), car speedmeasurement, left/right turn signals, steering wheel movements andlocation, wheel directions, car motion path, input indicating thesurrounding around the car such as cameras or proximity sensors ordistance sensors, Structure From Motion (SFM) and 3D reconstruction ofthe environment around the vehicle.

Machine learning components can be used to detect the occupancy of avehicle's cabin, detecting and tracking people and objects, and actsaccording to their presence, position, pose, identity, age, gender,physical dimensions, state, emotion, health, head pose, gaze, gestures,facial features and expressions. Machine learning components can be usedto detect one or more persons, a person's age or gender, a person'sethnicity, a person's height, a person's weight, a pregnancy state, aposture, an abnormal seating position (e.g. leg's up, lying down, turnedaround to face the back of the vehicle, etc.), seat validity(availability of a seatbelt), a posture of the person, seat belt fittingand tightness, an object, presence of an animal in the vehicle, presenceand identification of one or more objects in the vehicle, learning thevehicle interior, an anomaly, a damaged item or portion of the vehicleinterior, a child/baby seat in the vehicle, a number of persons in thevehicle, a detection of too many persons in a vehicle (e.g. 4 childrenin rear seat when only 3 are allowed), or a person sitting on anotherperson's lap.

Machine learning components can be used to detect or predict featuresassociated with user behavior, action, interaction with the environment,interaction with another person, activity, emotional state, emotionalresponses to: content, event, trigger another person, one or moreobject, detecting child presence in the car after all adults left thecar, monitoring back-seat of a vehicle, identifying aggressive behavior,vandalism, vomiting, physical or mental distress, detecting actions suchas smoking, eating and drinking, understanding the intention of the userthrough their gaze or other body features. In some embodiments, theuser's behaviors, actions or attention may be correlated to the user'sgaze direction or detected change in gaze direction. In someembodiments, one or more sensors may detect the user's behaviors,activities, actions, or level of attentiveness and correlate thedetected behaviors, activities, actions, or level of attentiveness tothe user's gaze direction or change in gaze direction. By way ofexample, the one or more sensors may detect the user's gesture ofpicking up a bottle in the car and correlate the user's detected gestureto the user's change in gaze direction to the bottle. By correlating theuser's behaviors, activities, actions, or level of attentiveness to theuser's gaze direction or change in gaze direction, the machine learningsystem may be able to detect a particular gesture performed by the userand predict, based on the detected gesture, a gaze direction, a changein gaze direction, or a level of attentiveness of the user.

It should be understood that the ‘gaze of a user,’ ‘eye gaze,’ etc., asdescribed and/or referenced herein, can refer to the manner in which theeye(s) of a human user are positioned/focused. For example, the ‘gaze’or ‘eye gaze’ of the user can refer to the direction towards whicheye(s) of the user are directed or focused e.g., at a particularinstance and/or over a period of time. By way of further example, the‘gaze of a user’ can be or refer to the location the user looks at aparticular moment. By way of yet further example, the ‘gaze of a user’can be or refer to the direction the user looks at a particular moment.

Moreover, in some embodiments the described technologies candetermine/extract the referenced gaze of a user using various techniquessuch as those known to those of ordinary skill in the art. For example,in certain implementations a sensor (e.g., an image sensor, camera, IRcamera, etc.) may capture image(s) of eye(s) (e.g., one or both humaneyes). Such image(s) can then be processed, e.g., to extract variousfeatures such as the pupil contour of the eye, reflections of the IRsources (e.g., glints), etc. The gaze or gaze vector(s) can then becomputed/output, indicating the eyes' gaze points (which can correspondto a particular direction, location, object, etc.). Additionally, insome embodiments the disclosed technologies can compute, determine,etc., that gaze of the user is directed towards (or is likely to bedirected towards) a particular item, object, etc., e.g., under certaincircumstances.

Machine learning algorithms may detect one or more patterns in collectedsensor data, such as image data, proximity sensor data, and data fromother types of sensors disclosed herein. A machine learning componentimplemented by the processor may be trained using one or more trainingdata sets based on correlations between collected sensor data and thedetection of current or future gestures, activities and behaviors.Machine learning components may be continuously or periodically updatedbased on new training data sets and feedback loops indicating theaccuracy of previously detected/predicted gestures.

Machine learning techniques such as deep learning may also be used toconvert movement patterns and other sensor inputs to predict anticipatedmovements, gestures, or anticipated locations of body parts, such as bypredicting that a finger will arrive at a certain location in spacebased on a detected movement pattern and the application of deeplearning techniques.

Such techniques may also determine that a user is intending to perform aparticular gesture based on detected movement patterns and deep learningalgorithms correlating the detected patterns to an intended gesture.Consistent with these examples, some embodiments may also utilizemachine learning models such as neural networks, that employ one or morenetwork layers that generate outputs from a received input, inaccordance with current values of a respective set of parameters. Neuralnetworks may be used to predict an output for a received input using theone or more layers of the networks. Thus, the disclosed embodiments mayemploy one or more machine learning techniques to provide enhanceddetection and prediction of gestures, activities, and behaviors of auser using received sensor inputs in conjunction with training data orcomputer model layers.

Machine learning my also incorporate techniques that determine that auser is intending to perform a particular gesture or activity based ondetected movement patterns and/or deep learning algorithms correlatingdata gathered from sensors to an intended gesture or activity. Sensorsmay include for example, a CCD image sensor, a CMOS image sensor, acamera, a light sensor, an IR sensor, an ultrasonic sensor, a proximitysensor, a shortwave infrared (SWIR) image sensor, a reflectivity sensor,or any other device that is capable of sensing visual characteristics ofan environment. Moreover, sensors may include, for example, a singlephotosensor or 1-D line sensor capable of scanning an area, a 2-Dsensor, or a stereoscopic sensor that includes, for example, a pluralityof 2-D image sensors. The sensor may also include, for example, anaccelerometer, a gyroscope, a pressure sensor, or any other sensor thatis capable of detecting information associated with a vehicle of theuser. Data from sensors may be associated with users, driver,passengers, items, and detected activities or characteristics discussedabove such as health condition of users, body posture, locations ofusers, location of user's body parts, user's gaze, communication withother users, devices, services, AI devices or applications, robots,implants.

In some embodiments, sensors may comprise one or more components.Components can include biometric components, motion components,environmental components, or position components, among a wide array ofother components. For example, the biometric components can includecomponents to detect expressions (e.g., hand expressions, facialexpressions, vocal expressions, body gestures, or eye tracking), measurebiosignals (e.g., blood pressure, heart rate, body temperature,perspiration, or brain waves), identify a person (e.g., voiceidentification, retinal identification, facial identification,fingerprint identification, or electroencephalogram basedidentification), and the like. The motion components can includeacceleration sensor components (e.g., accelerometer), gravitation sensorcomponents, rotation sensor components (e.g., gyroscope), and otherknown types of sensors for measuring motion. The environmentalcomponents can include, for example, illumination sensor components(e.g., photometer), temperature sensor components (e.g., one or morethermometers that detect ambient temperature), humidity sensorcomponents, pressure sensor components (e.g., barometer), acousticsensor components (e.g., one or more microphones that detect backgroundnoise), proximity sensor components (e.g., infrared sensors that detectnearby objects), gas sensors (e.g., gas detection sensors to detectconcentrations of hazardous gases for safety or to measure pollutants inthe atmosphere), or other components that can provide indications,measurements, or signals corresponding to a surrounding physicalenvironment. The position components can include location sensorcomponents (e.g., a Global Position System (GPS) receiver component),altitude sensor components (e.g., altimeters or barometers that detectair pressure from which altitude can be derived), orientation sensorcomponents (e.g., magnetometers), and other known types of positionalsensors. In some embodiments, sensors and sensor components may includephysical sensors such as a pressure sensor located within a seat of avehicle.

Data from sensors may be associated with an environment in which theuser is located. Data associated with the environment may include thedata related to internal or external parameters of the environment inwhich the user is located. Internal parameters may be associated with anin-car related parameter, such as parameters related to the people inthe car (number of people, their location, age of the people, bodysize), parameters related to safety state of the people (such asseat-belt is on/off, position of mirrors), position of the seats, thetemperature in the car, the amount of light in the car, state ofwindows, devices and applications that are active (such as carmultimedia device, displays devices, sound level, phone call, videocall, content/video that is displayed, digital games, VR/ARapplications, interior/external video camera). External parameters mayinclude parameters associated with the external environment in which theuser is located, such as parameters associated with environment outsidethe car, parameters related to the environment (such as: the lightoutside, the direction and volume of the sun light, change in lightcondition, parameters related to weather, parameters related to the roadconditions, the car location, signs, presented advertisements),parameters related to other cars, parameters related to users outsidethe vehicle including: the location of each user, age, direction ofmotion, activities such as: walking, running, riding a bike, looking ona display device, operating a device, tenting, having a call, listen tomusic, intend to cross the road, crossing the road, falling,attentiveness to the surrounding.

Data may be associated with the car related data, such as car movementincluding: speed, accelerating, decelerating, rotation, tuning,stopping, emergent stop, sliding, devices and applications active in thecar operating status of driving including: manual driving (user drivingthe car), autonomous driving while driver attention is required, fullautonomous driving, change between modes of driving. Data may bereceived from one or more sensors associated with the car. For example,sensors may include, a CCD image sensor, a CMOS image sensor, a camera,a light sensor, an IR sensor, an ultrasonic sensor, a proximity sensor,a shortwave infrared (SWIR) image sensor, a reflectivity sensor, or anyother device that is capable of sensing visual characteristics of anenvironment. Moreover, sensors may include, for example, a singlephotosensor or 1-D line sensor capable of scanning an area, a 2-Dsensor, or a stereoscopic sensor that includes, for example, a pluralityof 2-D image sensors. The sensor may also include, for example, anaccelerometer, a gyroscope, a pressure sensor, or any other sensor thatis capable of detecting information associated with a vehicle of theuser. Images captured by an image sensor may be digitized by the imagesensor and input to one or more processors, or may be input to the oneor more processors in analog form and digitized by the processor.Example proximity sensors may include, among other things, one or moreof a capacitive sensor, a capacitive displacement sensor, a laserrangefinder, a sensor that uses time-of-flight (TOF) technology, an IRsensor, a sensor that detects magnetic distortion, or any other sensorthat is capable of generating information indicative of the presence ofan object in proximity to the proximity sensor. In some embodiments, theinformation generated by a proximity sensor may include a distance ofthe object to the proximity sensor. A proximity sensor may be a singlesensor or may be a set of sensors. Disclosed embodiments may include asingle sensor or multiple types of sensors and/or multiple sensors ofthe same type. For example, multiple sensors may be disposed within asingle device such as a data input device housing some or all componentsof the system, in a single device external to other components of thesystem, or in various other configurations having at least one externalsensor and at least one sensor built into another component (e.g., aprocessor or a display of the system).

In some embodiments, a processor may be connected to or integratedwithin a sensor via one or more wired or wireless communication links,and may receive data from the sensor such as images, or any data capableof being collected by the sensor, such as is described herein. Suchsensor data can include, for example, sensor data of a user's head,eyes, face, etc. Images may include one or more of an analog imagecaptured by the sensor, a digital image captured or determined by thesensor, a subset of the digital or analog image captured by the sensor,digital information further processed by the processor, a mathematicalrepresentation or transformation of information associated with datasensed by the sensor, information presented as visual information suchas frequency data representing the image, conceptual information such aspresence of objects in the field of view of the sensor, etc. Images mayalso include information indicative the state of the sensor and or itsparameters during capturing images e.g. exposure, frame rate, resolutionof the image, color bit resolution, depth resolution, field of view ofthe sensor, including information from other sensor(s) during thecapturing of an image, e.g. proximity sensor information, accelerationsensor (e.g., accelerometer) information, information describing furtherprocessing that took place further to capture the image, illuminationcondition during capturing images, features extracted from a digitalimage by the sensor, or any other information associated with sensordata sensed by the sensor. Moreover, the referenced images may includeinformation associated with static images, motion images (i.e., video),or any other visual-based data. In certain implementations, sensor datareceived from one or more sensor(s) may include motion data, GPSlocation coordinates and/or direction vectors, eye gaze information,sound data, and any data types measurable by various sensor types.Additionally, in certain implementations, sensor data may includemetrics obtained by analyzing combinations of data from two or moresensors.

In some embodiments, one or more sensors associated with the vehicle ofthe user may be able to detect information or data associated with thevehicle over a predetermined period of time. By way of example, apressure sensor associated with the vehicle may be able to detectpressure value data associated with the vehicle over a predeterminedperiod of time, and a processor may monitor a pattern of pressurevalues. The processor may also be able to detect a change in pattern ofthe pressure values. The change in pattern may include, but is notlimited to, an abnormality in the pattern of values or a shift in thepattern of values to a new pattern of values. The processor may detectthe change in pattern of the values and correlate the change a detectedgesture, activity, or behavior of the user. Based on the correlation,the processor may be able to predict an intention of the user to performa particular gesture based on a detected pattern. In another example,the processor may be able to detect or predict the driver's level ofattentiveness to the road during a change in operation mode of thevehicle, based on the data from the one or more sensors associated withthe vehicle. For example, the processor may be configured to determinethe driver's level of attentiveness to the road during thetransaction/change between an autonomous driving mode to a manualdriving mode based on data associated with the behavior or activity thedriver was engaged in before and during the change in the operation modeof the vehicle.

In some embodiments, the processor may be configured to receive dataassociated with events that were already detected or predicted by thesystem or other systems, including forecasted events. For example, datamay include events that are predicted before the events actually occur.In some embodiments, the forecasted events may be predicted based on theevents that were already detected by the system or other systems. Suchevents may include actions, gestures, behaviors performed by the user,driver or passenger. By way of example, the system may predict a changein the gaze direction of a user before the gaze direction actuallychanges. In addition, the system may detect a gesture of a user towardan object and predict that the user will shift his or her gaze towardthe object once the user's hand reaches a predetermined distance fromthe object. In some embodiments, the system may predict forecastedevents, via a machine learning algorithms, based on events that werealready detected. In other embodiments, the system may predict at leastone of the user behavior, an intention to perform a gesture, or anintention to perform an activity based on the data associated withevents that were already detected or predicted, including forecastedevents.

The processor may perform various actions using machine learningalgorithms. For example, machine learning algorithms may be used todetect and classify gestures, activity or behavior performed in relationto at least one of the user's body or other objects proximate the user.In one implementation, the machine learning algorithms may be used todetect and classify gestures, activity or behavior performed in relationto a user's face, to predict activities such as yawning, smoking,scratching, fixing an a position of glasses, put on/off glasses orfixing their position on the face, occlusion of a hand with features ofthe face (features that may be critical for detection of driverattentiveness, such as driver's eyes); or a gesture of one hand inrelation to the other hand, to predict activities involving two handswhich are not related to driving (e.g. opening a drinking can or abottle, handling food). In another implementation, other objectsproximate the user may include controlling a multimedia system, agesture toward a mobile device that is placed next to the user, agesture toward an application running on a digital device, a gesturetoward the mirror in the car, or fixing the side mirrors. In someembodiments, the processor is configured to predict an activityassociated with a device, such as fixing the mirror, by detecting agesture toward the device (e.g. toward a mirror); wherein detecting agesture toward a device comprise detecting a motion vector of thegesture (can be linear or non-linear) and determine the associateddevice that the gesture is addressing. In one implementation, the“gesture toward a device” is determined when the user hand or fingercrossed a defined boundary associated with the device, while in anotherimplementation the motion vector of the user's hand or one or morefinger, is along a vector that may end at the device and although thehand or one or more finger didn't reach the device, there is no otherdevice located between the location of the hand or finger until thedevice. For example, the driver lifts his right hand toward the mirror.At the beginning of the lifting motion, there are several possibledevices toward which the driver makes a gesture, such as the multimedia,air condition or the mirror. During the gesture, the hand is raisedabove the multimedia device, then above the air-condition controllers.At this point, the processor may detect a motion vector that can end atthe mirror, and that the motion vector of the hand or finger alreadypassed the multimedia and air-condition controllers, and there are noother devices but the mirror on which the gesture may address. Theprocessor may be configured to determinate that at that point, thegesture is toward the mirror (even that the gesture was not yet ended,and the hand is yet to touch the mirror).

In other embodiments, machine learning algorithms may be used to detectvarious features associated with the gestures performed. For example,machine learning algorithms and/or traditional algorithms may be used todetect a speed, smoothness, direction, motion path, continuity, locationand/or size of the gestures performed. One or more known techniques maybe employed for such detection, and some examples are provided in U.S.Pat. Nos. 8,199,115 and 9,405,970, which are incorporated herein byreference. Traditional algorithms may include, for example, an objectrecognition algorithm, an object tracking algorithm, segmentationalgorithm, and/or any known algorithms in the art to detect a speed,smoothness, direction, motion path, continuity, location, size of anobject, and/or size of the gesture. The processor may also be configuredto detect a speed, smoothness, direction, motion path, continuity,location and/or size of components associated with the gesture, such ashands, fingers, other body parts, or objects moved by the user.

In some embodiments, the processor may be configured to detect a changein the user's gaze before, during, and after the gesture is performed.In some embodiments, the processor may be configured to determinefeatures associated with the gesture and a change in user's gazedetection before, during, and after the gesture is performed. Theprocessor may also be configured to predict a change in gaze directionof the user based on the features associated with the gesture. In someembodiments, the processor may be configured to predict a change of gazedirection using criteria saved in a memory, historical informationpreviously extracted and associated with a previous occurrenceassociated with the gesture performance and/or driver behavior and/ordriver activity and an associated direction of gaze before, during andafter the gesture and/or behavior and/or activity is performed. Theprocessor may also be configured to predict a change of gaze directionusing information associated with passenger activity or behavior, and/orinteraction of the driver with other passenger, using criteria saved ina memory, information extracted in previous time associated withpassenger activity or behavior, and/or interaction of the driver withother passenger, and direction of gaze before, during and after thegesture is performed.

In some embodiments, the processor may be configured to predict a changeof gaze direction using information associated with level of driverattentiveness to the road, and gesture and/or behavior and/or activityand/or event that takes place in the vehicle, using criteria saved in amemory, information extracted in previous time associated with driverattentiveness to the road, and gesture performance and direction of gazebefore, during and after the event occurs. Further, the processor may beconfigured to predict a change of gaze direction using informationassociated with detected of repetitive gestures, gestures that are inrelation to other body part, gestures that are in relation to devices inthe vehicle.

In some embodiments, machine learning algorithms may enable theprocessor to determine a correlation between the detected gestures, thelocation of the gestures, the nature of the gestures, the features ofthe gestures, and the user's behavior. The features of the gestures mayinclude, for example, a frequency of the gestures detected during apredefined time period. In other embodiments, machine learningalgorithms may train the processor to correlate the detected gesture tothe user's level of attention. For example, the processor may be able tocorrelate the detected gesture of a user who is a driver of a vehicle todetermine the level of attention of the driver to the road, orcorrelated to the user's driving behaviors determined, for example,using data associated with the vehicle movement patterns. Furthermore,the processor may be configured to correlate the detected gesture of auser, who may be a driver of a vehicle, to the response time of the userto an event taking place. The even taking place may be associated withthe vehicle. For example, the processor may be configured to correlate adetected gesture performed by a driver of a vehicle, to the responsetime of applying brakes when a vehicle in front of the driver's vehicleis stopped, changes lanes, or changes its path, or an event of apedestrian crossing the road in front of the driver's vehicle. In someembodiments, the response time of the user to the event taking place maybe, for example, the time it takes for the user to control an operationof the vehicle during transitioning of an operation mode of the vehicle.The processor may be configured to correlate a detected gestureperformed by a driver of a vehicle, to the response time of the driverfollowing or addressing an instruction to take charge and control thevehicle when the vehicle transitions from autonomous mode to manualdriving mode. In such embodiments, the operation mode of the vehicle maybe controlled and changed in association with detected gestures and/orpredicted behavior of the user.

In some embodiments, the processor may be configured to correlate adetected gesture performed by a user who may not be the driver, and achange in the driver's level of attentiveness to the road, a change inthe driver gaze direction, and/or a predicted gesture to be performed bythe driver. Examples of gestures performed by a user who may not be thedriver may include, for example, changing the volume setting of the carstereo, change a mode of multimedia operation, change parameters of theair-conditioner, searching for something in the vehicle, opening vehiclecompartments, twist the body position backwards to talk with thepassengers in the back (such as talking to the kids in the back),buckling or unbuckling the seat-belt, changing seating position,adjusting the location or position of a seat, opening a window or door,reaching out of the vehicle through the window or door, or passing anobject into or out of the vehicle.

In yet another embodiment, machine learning algorithms may train theprocessor to correlate detected gestures to a change in user's gazedirection before, during, and after the gesture is performed by theuser. By way of example, when the processor detects the user moving theuser's hand toward a multimedia system in a car, the processor may beable to predict that the user's gaze will follow the user's fingerrather than stay on the road when the user's fingers move near thedisplay or touch-display of the multimedia system.

In some embodiments, machine learning algorithms may configure theprocessor to predict the direction of driver gaze along a sequence oftime in relation to a detected gesture. For example, machine learningalgorithms may configure the processor to detect the driver's gesturetowards an object and predict that the direction of the driver's gazewill shift towards the object after a first period of time. The machinelearning algorithms may also configure the processor to predict that thedriver's gaze will shift back towards the road after a second period oftime after the driver's gaze has shifted towards the object. The first,and/or second period of time may be values saved in the memory, valuesthat were detected in previous similar event of that driver, or valuesthat represent a statistical value. As a non-limiting example, when adriver begins a gesture toward a multimedia device (such as changing aradio station or selecting an audio track), the processor may predictthat the driver's gaze will shift downward and to the side toward themultimedia device for 2 seconds, and then will shift back to the roadafter another 600 milliseconds. As another example, when the driverbegins looking toward the main rear-view mirror, the processor maypredict that the gaze will shift upward and toward the center for about2-3 seconds. In yet another embodiment, the processor may be configuredto predict when and for how long the driver gaze will be shifted fromthe road using information associated with previous events performed bythe driver.

In yet another embodiment, the processor may be configured to receiveinformation from one or more sensors, devices, or applications in avehicle of the user and predict a change in gaze direction of the userbased on the received information. For example, the processor may beconfigured to receive data associated with active devices, applications,or sensors in the car, for example data from multimedia systems,navigation systems, or microphones, and predict the direction of adriver's gaze in relation to the data. In some embodiments, an activedevice may include a multimedia system, an application and include anavigation system, and a sensor in the car may include a microphone. Theprocessor may be configured to analyze the data received. For example,the processor may be configured to analyze data received via speechrecognition performed on microphone data to determine the content of adiscussion/talk in the vehicle. In this example, data is gathered by amicrophone, a speech recognition analyzer is employed by the processorto identify spoken words in the data, and the processor may determinethat a child sitting in the back of the vehicle has asked the driver topick up a gaming device that was just fell from his hands. In such anexample, the machine learning algorithms may enable the processor topredict that the driver's gaze will divert from the road to the rearseat as the driver responds to the child's request.

In yet another embodiment, the processor may be configured to predict asequence or frequency of change of driver gaze direction from the roadtoward a device/object or a person. In one example, the processorpredicts a sequence or frequency of change of driver gaze direction fromthe road by detect an activity the driver is involved with or detect agesture performed by the driver, detect the object or device associatedwith the detected gesture and determine the activity the driver isinvolving with. For example, the processor may detect the driver lookingfor an object in a bag located on the other seat, or for a song in themultimedia application. Based on the detected activity of the driver,the processor may be configured to predict that the driver's change ingaze direction from the road to the object and/or the song will continueuntil the driver finds the desired object and/or song. The processor maybe configured to predict the sequence of this change in driver's gazedirection. Accordingly, the processor may be configured to predict thateach subsequent change in gaze direction will increase in time as longas the driver's gaze is toward the desired object and/or song, ratherthan toward the road. In some embodiments, the processor may beconfigured to predict the level of driver attentiveness using dataassociated with features related to the change of gaze direction. Forexample, the predicted driver attentiveness may be predicted in relationto the time of the change in gaze direction (from the road, to thedevice, and back to the road), the gesture/activity/behavior the driverperforms, sequence of gaze direction, frequency of gaze direction, orthe volume or magnitude of the change in gaze direction.

In some embodiments, machine learning algorithms may configure theprocessor to predict the direction of the driver's gaze wherein theprediction is in a form of a distribution function. In some embodiments,the processor may be configured to generate a message or a commandassociated with the detected or predicted change in gaze direction. Insuch embodiments, the processor may generate a command or message inresponse to any of the detected or predicted scenarios or eventsdiscussed above. The message or command generated may be audible orvisual, or may comprise a command generated and sent to another systemor software application. For example, the processor may be configured togenerate an audible or visual message after detecting that the driver'sgaze has shifted towards an object for a period of time greater than apredetermined threshold. In some embodiments, the processor may beconfigured to alert the driver that the driver should not operate thevehicle. In other embodiments, the processor may be configured tocontrol an operation mode of the vehicle based on the detected orpredicted change in gaze direction. For example, the processor may beconfigured to change the operation mode of the vehicle from a manualdriving mode to an autonomous driving mode based on the detected orpredicted change in gaze direction. In some embodiments, the processormay be configured to activate or deactivate functions related to thevehicle, to the control over the vehicle, to the vehicle movementincluding stopping the vehicle, to devices or sub-systems in thevehicle. In some embodiments, the processor may be configured tocommunicate with other cars, with one or more systems associated lightscontrol or with any system associated with transportation.

In some embodiments, the processor may be configured to generate amessage or a command based on the prediction. The message or command maybe generated to other systems, devices, or software applications. Insome aspects, the message or command may be generated to other systems,devices, or applications located in the user's car or located outsidethe user's car. For example, the message or command may be generated toa cloud system or other remote devices or cars. In some embodiments, themessage or command generated may indicate the detected or forecastedbehavior of the user, including, for example, data associated with agaze direction of the user or attention parameters of the user.

In some embodiments, a message to a device may be a command. The commandmay be selected, for example, from a command to run an application onthe device, a command to stop an application running on the device orwebsite, a command to activate a service running on the device, acommand to stop a service running on the device, a command to activate aservice or a process running on the external device or a command to senddata relating to a graphical element identified in an image.

The action may also include, for example responsive to a selection of agraphical element, receiving from the external device or website datarelating to a graphical element identified in an image and presentingthe received data to a user. The communication with the external deviceor website may be over a communication network.

Gestures may be one-handed or two handed. Exemplary actions associatedwith a two-handed gesture can include, for example, selecting an area,zooming in or out of the selected area by moving the fingertips awayfrom or towards each other, rotation of the selected area by arotational movement of the fingertips. Actions associated with atwo-finger pointing gesture can include creating an interaction betweentwo objects, such as combining a music track with a video track or for agaming interaction such as selecting an object by pointing with onefinger, and setting the direction of its movement by pointing to alocation on the display with another finger.

Gestures may be any motion of one or more part of the user's body,whether the motion of that one or more part is performed mindfully(e.g., purposefully) or not, as an action with a purpose to activatesomething (such as turn on/off the air-condition) or as a way ofexpression (such as when people are talking and moving their handssimultaneously, or nodding with their head while listening). The motionmay be of one or more parts of the user's body in relation to anotherpart of the user's body. In some embodiments, a gesture may beassociated with addressing a body disturbance, whether the gesture isperformed by the user's hand(s) or finger(s) such as scratching a bodypart of the user, such as eye, nose, mouth, ear, neck, shoulder. In someembodiments, a gesture may be associated with a movement of part of thebody such as stretching the neck, the shoulders, the back by differentmovement of the body, or associated with a movement of the entire bodysuch as changing the position of the body. A gesture may also be anymotion of one or more parts of the user's body in relation to an objector a device located in the vehicle, or in relation to another person inthe vehicle or outside the vehicle. Gestures may be any motion of one ormore part of the user's body that has no meaning such as a gesturesperformed for users that has Tourette syndrome or motor tics. Gesturesmay be associated as the user's response to a touch by other person, abehavior or the other person, a gesture of the other person, or anactivity of the other person in the car.

In some embodiments, gesture may be performed by a user who may not bethe driver of a vehicle. Examples of gestures performed by a user whomay not be the driver may include, for example, changing the volumesetting of the car stereo, change a mode of multimedia operation, changeparameters of the air-conditioner, searching for something in thevehicle, opening vehicle compartments, twist the body position backwardsto talk with the passengers in the back (such as talking to the kids inthe back), buckling or unbuckling the seat-belt, changing seatingposition, adjusting the location or position of a seat, opening a windowor door, reaching out of the vehicle through the window or door, orpassing an object into or out of the vehicle.

Gestures may be in a form of facial expression. A gesture may beperformed by muscular activity of facial muscles, whether it isperformed as a response to an external trigger (such as squinting orturning away in response to a flash of strong light that may be causedby beam of high-lights from a car on the other direction), or internaltrigger by physical or emotional state (such as squinting and moving thehead due to laughter or crying). More particular, gestures that may beassociated with facial expression may include gestures indicatingstress, surprise, fear, focusing, confusion, pain, emotional stress, astring emotional response such as crying.

In some embodiments, gestures may include actions performed by a user inrelation to the user's body. Users may include a driver or passengers ofa vehicle, when the disclosed embodiments are implemented in a systemfor detecting gestures in a vehicle. Exemplary gestures or actions inrelation to the user's body may include, for example, bringing an objectcloser to the user's body, touching the user's own body, and fully orpartially covering a part of the user's body. Objects may include theuser's one or more fingers and user's one or more hands. In otherembodiments, objects may be items separate from the user's body. Forexample, objects may include hand-held objects associated with the user,such as food, cups, eye glasses, sunglasses, hats, pens, phones, otherelectronic devices, mirrors, bags, and any other object that can be heldby the user's fingers and/or hands. Other exemplary gestures mayinclude, for example, bringing a piece of food to the user's mouth,touching the user's hair with the user's fingers, touching the user'seyes with the user's fingers, adjusting the user's glasses, and coveringthe user's mouth fully and/or partially, or any interaction between anobject and the user body, and in specifically face related body parts.

FIG. 1 is a diagram illustrating an example touch-free gesturerecognition system 100 that may be used for implementing the disclosedembodiments. System 100 may include, among other things, one or moredevices 2, illustrated generically in FIG. 1. Device 2 may be, forexample, a personal computer (PC), an entertainment device, a set topbox, a television, a mobile game machine, a mobile phone, a tabletcomputer, an e-reader, a portable game console, a portable computer suchas a laptop or ultrabook, a home appliance such as a kitchen appliance,a communication device, an air conditioning thermostat, a dockingstation, a game machine such as a mobile video gaming device, a digitalcamera, a watch, an entertainment device, speakers, a Smart Home device,a media player or media system, a location-based device, a picoprojector or an embedded projector, a medical device such as a medicaldisplay device, a vehicle, an in-car/in-air infotainment system, anavigation system, a wearable device, an augmented reality-enableddevice, wearable goggles, a robot, interactive digital signage, adigital kiosk, a vending machine, an automated teller machine (ATM), orany other apparatus that may receive data from a user or output data toa user. Moreover, device 2 may be handheld (e.g., held by a user's hand19) or non-handheld.

System 100 may include some or all of the following components: adisplay 4, image sensor 6, keypad 8 comprising one or more keys 10,processor 12, memory device 16, and housing 14. In some embodiments,some or all of the display 4, image sensor 6, keypad 8 comprising one ormore keys 10, processor 12, housing 14, and memory device 16, arecomponents of device 2. However, in some embodiments, some or all of thedisplay 4, image sensor 6, keypad 8 comprising one or more keys 10,processor 12, housing 14, and memory device 16, are separate from, butconnected to the device 2 (using either a wired or wireless connection).For example, image sensor 6 may be located apart from device 2.Moreover, in some embodiments, components such as, for example, thedisplay 4, keypad 8 comprising one or more keys 10, or housing 14, areomitted from system 100.

A display 4 may include, for example, one or more of a television set,computer monitor, head-mounted display, broadcast reference monitor, aliquid crystal display (LCD) screen, a light-emitting diode (LED) baseddisplay, an LED-backlit LCD display, a cathode ray tube (CRT) display,an electroluminescent (ELD) display, an electronic paper/ink display, aplasma display panel, an organic light-emitting diode (OLED) display,thin-film transistor display (TFT), High-Performance Addressing display(HPA), a surface-conduction electron-emitter display, a quantum dotdisplay, an interferometric modulator display, a swept-volume display, acarbon nanotube display, a variforcal mirror display, an emissive volumedisplay, a laser display, a holographic display, a transparent display,a semitransparent display, a light field display, a projector andsurface upon which images are projected, or any other electronic devicefor outputting visual information. In some embodiments, the display 4 ispositioned in the touch-free gesture recognition system 100 such thatthe display 4 is viewable by one or more users.

Image sensor 6 may include, for example, a CCD image sensor, a CMOSimage sensor, a camera, a light sensor, an IR sensor, an ultrasonicsensor, a proximity sensor, a shortwave infrared (SWIR) image sensor, areflectivity sensor, or any other device that is capable of sensingvisual characteristics of an environment. Moreover, image sensor 6 mayinclude, for example, a single photosensor or 1-D line sensor capable ofscanning an area, a 2-D sensor, or a stereoscopic sensor that includes,for example, a plurality of 2-D image sensors. Image sensor 6 may beassociated with a lens for focusing a particular area of light onto theimage sensor 6. In some embodiments, image sensor 6 is positioned tocapture images of an area associated with at least some display-viewablelocations. For example, image sensor 6 may be positioned to captureimages of one or more users viewing the display 4. However, a display 4is not necessarily a part of system 100, and image sensor 6 may bepositioned at any location to capture images of a user and/or of device2.

Image sensor 6 may view, for example, a conical or pyramidal volume ofspace 18, as indicated by the broken lines in FIG. 1. The image sensor 6may have a fixed position on the device 2, in which case the viewingspace 18 is fixed relative to the device 2, or may be positionablyattached to the device 2 or elsewhere, in which case the viewing space18 may be selectable. Images captured by the image sensor 6 may bedigitized by the image sensor 6 and input to the processor 12, or may beinput to the processor 12 in analog form and digitized by the processor12.

Some embodiments may include at least one processor. The at least oneprocessor may include any electric circuit that may be configured toperform a logic operation on at least one input variable, including, forexample one or more integrated circuits, microchips, microcontrollers,and microprocessors, which may be all or part of a central processingunit (CPU), a digital signal processor (DSP), a field programmable gatearray (FPGA), a graphical processing unit (GPU), or any other circuitknown to those skilled in the art that may be suitable for executinginstructions or performing logic operations. Multiple functions may beaccomplished using a single processor or multiple related and/orunrelated functions may be divide among multiple processors.

In some embodiments, such is illustrated in FIG. 1, at least oneprocessor may include processor 12 connected to memory 16. Memory 16 mayinclude, for example, persistent memory, ROM, EEPROM, EAROM, flashmemory devices, magnetic disks, magneto optical disks, CD-ROM, DVD-ROM,Blu-ray, and the like, and may contain instructions (i.e., software orfirmware) or other data. Generally, processor 12 may receiveinstructions and data stored by memory 16. Thus, in some embodiments,processor 12 executes the software or firmware to perform functions byoperating on input data and generating output. However, processor 12 mayalso be, for example, dedicated hardware or an application-specificintegrated circuit (ASIC) that performs processes by operating on inputdata and generating output. Processor 12 may be any combination ofdedicated hardware, one or more ASICs, one or more general purposeprocessors, one or more DSPs, one or more GPUs, or one or more otherprocessors capable of processing digital information.

FIG. 2 illustrates exemplary operations 200 that at least one processormay be configured to perform. For example, as discussed above, processor12 of the touch-free gesture recognition system 100 may be configured toperform these operations by executing software or firmware stored inmemory 16, or may be configured to perform these operations usingdedicated hardware or one or more ASICs.

In some embodiments, at least one processor may be configured to receiveimage information from an image sensor (operation 210). In order toreduce data transfer from the image sensor 6 to an embedded devicemotherboard, general purpose processor, application processor, GPU aprocessor controlled by the application processor, or any otherprocessor, including, for example, processor 12, the gesture recognitionsystem may be partially or completely be integrated into the imagesensor 6. In the case where only partial integration to the imagesensor, ISP or image sensor module takes place, image preprocessing,which extracts an object's features related to the predefined object,may be integrated as part of the image sensor, ISP or image sensormodule. A mathematical representation of the video/image and/or theobject's features may be transferred for further processing on anexternal CPU via dedicated wire connection or bus. In the case that thewhole system is integrated into the image sensor, ISP or image sensormodule, only a message or command (including, for example, the messagesand commands discussed in more detail above and below) may be sent to anexternal CPU. Moreover, in some embodiments, if the system incorporatesa stereoscopic image sensor, a depth map of the environment may becreated by image preprocessing of the video/image in each one of the 2Dimage sensors or image sensor ISPs and the mathematical representationof the video/image, object's features, and/or other reduced informationmay be further processed in an external CPU.

“Image information,” as used in this application, may be one or more ofan analog image captured by image sensor 6, a digital image captured ordetermined by image sensor 6, subset of the digital or analog imagecaptured by image sensor 6, digital information further processed by anISP, a mathematical representation or transformation of informationassociated with data sensed by image sensor 6, frequencies in the imagecaptured by image sensor 6, conceptual information such as presence ofobjects in the field of view of the image sensor 6, informationindicative of the state of the image sensor or its parameters whencapturing an image (e.g., exposure, frame rate, resolution of the image,color bit resolution, depth resolution, or field of view of the imagesensor), information from other sensors when the image sensor 6 iscapturing an image (e.g. proximity sensor information, or accelerometerinformation), information describing further processing that took placeafter an image was captured, illumination conditions when an image iscaptured, features extracted from a digital image by image sensor 6, orany other information associated with data sensed by image sensor 6.Moreover, “image information” may include information associated withstatic images, motion images (i.e., video), or any other visual-baseddata.

In some embodiments, the at least one processor may be configured todetect in the image information a gesture performed by a user (operation220). Moreover, in some embodiments, the at least one processor may beconfigured to detect a location of the gesture in the image information(operation 230). The gesture may be, for example, a gesture performed bythe user using predefined object 24 in the viewing space 16. Thepredefined object 24 may be, for example, one or more hands, one or morefingers, one or more fingertips, one or more other parts of a hand, orone or more hand-held objects associated with a user. In someembodiments, detection of the gesture is initiated based on detection ofa hand at a predefined location or in a predefined pose. For example,detection of a gesture may be initiated if a hand is in a predefinedpose and in a predefined location with respect to a control boundary.More particularly, for example, detection of a gesture may be initiatedif a hand is in an open-handed pose (e.g., all fingers of the hand awayfrom the palm of the hand) or in a fist pose (e.g., all fingers of thehand folded over the palm of the hand). Detection of a gesture may alsobe initiated if, for example, a hand is detected in a predefined posewhile the hand is outside of the control boundary (e.g., for apredefined amount of time), or a predefined gesture is performed inrelation to the control boundary, Moreover, for example, detection of agesture may be initiated based on the user location, as captured byimage sensor 6 or other sensors. Moreover, for example, detection of agesture may be initiated based on a detection of another gesture. E.g.,to detect a “left to right” gesture, the processor may first detect a“waving” gesture.

As used in this application, the term “gesture” may refer to, forexample, a swiping gesture associated with an object presented on adisplay, a pinching gesture of two fingers, a pointing gesture towardsan object presented on a display, a left-to-right gesture, aright-to-left gesture, an upwards gesture, a downwards gesture, apushing gesture, a waving gesture, a clapping gesture, a reverseclapping gesture, a gesture of splaying fingers on a hand, a reversegesture of splaying fingers on a hand, a holding gesture associated withan object presented on a display for a predetermined amount of time, aclicking gesture associated with an object presented on a display, adouble clicking gesture, a right clicking gesture, a left clickinggesture, a bottom clicking gesture, a top clicking gesture, a graspinggesture, a gesture towards an object presented on a display from a rightside, a gesture towards an object presented on a display from a leftside, a gesture passing through an object presented on a display, ablast gesture, a tipping gesture, a clockwise or counterclockwisetwo-finger grasping gesture over an object presented on a display, aclick-drag-release gesture, a gesture sliding an icon such as a volumebar, or any other motion associated with a hand or handheld object. Agesture may be detected in the image information if the processor 12determines that a particular gesture has been or is being performed bythe user.

In some embodiments, a gesture may comprise a swiping motion, a pinchingmotion of two fingers, pointing, a left to right gesture, a right toleft gesture, an upwards gesture, a downwards gesture, a pushinggesture, opening a clenched fist, opening a clenched fist and movingtowards the image sensor, a tapping gesture, a waving gesture, aclapping gesture, a reverse clapping gesture, closing a hand into afist, a pinching gesture, a reverse pinching gesture, a gesture ofsplaying fingers on a hand, a reverse gesture of splaying fingers on ahand, pointing at an activatable object, holding an activating objectfor a predefined amount of time, clicking on an activatable object,double clicking on an activatable object, clicking from the right sideon an activatable object, clicking from the left side on an activatableobject, clicking from the bottom on an activatable object, clicking fromthe top on an activatable object, grasping an activatable object theobject, gesturing towards an activatable object the object from theright, gesturing towards an activatable object from the left, passingthrough an activatable object from the left, pushing the object,clapping, waving over an activatable object, performing a blast gesture,performing a tapping gesture, performing a clockwise or counterclockwise gesture over an activatable object, grasping an activatableobject with two fingers, performing a click-drag-release motion, slidingan icon.

Gestures may be any motion of one or more part of the user's body,whether the motion of that one or more part is performed mindfully ornot, as an action with a purpose to activate something (such as turnon/off the air-condition) or as a way of expression (such as when peopleare talking and moving their hands simultaneously, or nodding with theirhead while listening). Whether the motion of that one or more part ofthe user's body relates to other part of the user body. Gesture may beassociated with addressing a body disturbance, whether the gesture isperformed by the user's hand/s or finger/s such as scratching a bodypart of the user, such as eye, nose, mouth, ear, neck, shoulder. Gesturemay be associated with a movement of part of the body such as stretchingthe neck, the shoulders, the back by different movement of the body, orassociated with a movement of all the body such as changing the positionof the body. A gesture may be any motion of one or more part of theuser's body in relation to an object or a device located in the car, orin relation to other person. Gestures may be any motion of one or morepart of the user's body that has no meaning such as a gesture performedfor users that has Tourette syndrome or motor tics. Gestures may beassociated as a respond to a touch by another person.

Gestures may be in a form of facial expression. Gesture performed bymuscular activity of facial muscles, whether it is performed as arespond to external trigger (such as a flash of strong light that may becaused by beam of high-lights from a car on the other direction), orinternal trigger by physical or emotional state. More particular,gestures that may be associated with facial expression may include agesture indicating stress, surprise, fear, focusing, confusion, pain,emotional stress, a string emotional response such as crying.

In some embodiments, gestures may include actions performed by a user inrelation to the user's body. Users may include a driver or passengers ofa vehicle, when the disclosed embodiments are implemented in a systemfor detecting gestures in a vehicle. Exemplary gestures or actions inrelation to the user's body may include, for example, bringing an objectcloser to the user's body, touching the user's own body, and fully orpartially covering a part of the user's body. Objects may include theuser's one or more fingers and user's one or more hands. In otherembodiments, objects may be separate from the user. For example, objectsmay include hand-held objects associated with the user, such as food,cups, eye glasses, sunglasses, hats, pens, phones, other electronicdevices, mirrors, bags, and any other object that can be held by theuser's fingers and/or hands. Other exemplary gestures may include, forexample, bringing a piece of food to the user's mouth, touching theuser's hair with the user's fingers, touching the user's eyes with theuser's fingers, adjusting the user's glasses, and covering the user'smouth fully and/or partially, or any interaction between an object andthe user body, and in specifically face related body parts.

An object associated with the user may be detected in the imageinformation based on, for example, the contour and/or location of anobject in the image information. For example, processor 12 may access afilter mask associated with predefined object 24 and apply the filtermask to the image information to determine if the object is present inthe image information. That is, for example, the location in the imageinformation most correlated to the filter mask may be determined as thelocation of the object associated with predefined object 24. Processor12 may be configured, for example, to detect a gesture based on a singlelocation or based on a plurality of locations over time. Processor 12may also be configured to access a plurality of different filter masksassociated with a plurality of different hand poses. Thus, for example,a filter mask from the plurality of different filter masks that has abest correlation to the image information may cause a determination thatthe hand pose associated with the filter mask is the hand pose of thepredefined object 24. Processor 12 may be configured, for example, todetect a gesture based on a single pose or based on a plurality of posesover time. Moreover, processor 12 may be configured, for example, todetect a gesture based on both the determined one or more locations andthe determined one or more poses. Other techniques for detectingreal-world objects in image information (e.g., edge matching, greyscalematching, gradient matching, and other image feature-based methods) arewell known in the art, and may also be used to detect a gesture in theimage information. For example, U.S. Patent Application Publication No.2012/0092304 and U.S. Patent Application Publication No. 2011/0291925disclose techniques for performing object detection, both of which areincorporated by reference in their entirety. Each of the above-mentionedgestures may be associated with a control boundary.

A gesture location, as used herein, may refer to one or a plurality oflocations associated with a gesture. For example, a gesture location maybe a location of an object or gesture in the image information ascaptured by the image sensor, a location of an object or gesture in theimage information in relation to one or more control boundaries, alocation of an object or gesture in the 3D space in front of the user, alocation of an object or gesture in relation to a device or physicaldimension of a device, or a location of an object or gesture in relationto the user body or part of the user body such as the user's head. Forexample, a “gesture location” may include a set of locations comprisingone or more of a starting location of a gesture, intermediate locationsof a gesture, and an ending location of a gesture. A processor 12 maydetect a location of the gesture in the image information by determininglocations on display 4 associated with the gesture or locations in theimage information captured by image sensor 6 that are associated withthe gesture (e.g., locations in the image information in which thepredefined object 24 appears while the gesture is performed). Forexample, as discussed above, processor 12 may be configured to apply afilter mask to the image information to detect an object associated withpredefined object 24. In some embodiments, the location of the objectassociated with predefined object 24 in the image information may beused as the detected location of the gesture in the image information.

In other embodiments, the location of the object associated withpredefined object 24 in the image information may be used to determine acorresponding location on display 4 (including, for example, a virtuallocation on display 4 that is outside the boundaries of display 4), andthe corresponding location on display 4 may be used as the detectedlocation of the gesture in the image information. For example, thegesture may be used to control movement of a cursor, and a gestureassociated with a control boundary may be initiated when the cursor isbrought to an edge or corner of the control boundary. Thus, for example,a user may extend a finger in front of the device, and the processor mayrecognize the fingertip, enabling the user to control a cursor. The usermay then move the fingertip to the right, for example, until the cursorreaches the right edge of the display. When the cursor reaches the rightedge of the display, a visual indication may be displayed indicating tothe user that a gesture associated with the right edge is enabled. Whenthe user then performs a gesture to the left, the gesture detected bythe processor may be associated with the right edge of the device.

The following are examples of gestures associated with a controlboundary:

-   -   “Hand-right motion”—the predefined object 24 may move from right        to left, from a location which is beyond a right edge of a        control boundary, over the right edge, to a location which is to        the left of the right edge.    -   “Hand-left motion”—the predefined object 24 may move from left        to right, from a location which is beyond a left edge of a        control boundary, over the left edge, to a location which is to        the right of the left edge.    -   “Hand-up motion”—the predefined object 24 may move upwards from        a location which is below a bottom edge of a control boundary,        over the bottom edge, to a location which is above the bottom        edge.    -   “Hand-down motion”—the predefined object 24 may move downwards        from a location which is above a top edge of a control boundary,        over the top edge, to a location which is below the top edge.    -   “Hand-corner up-right”—the predefined object 24 may begin at a        location beyond the upper-right corner of the control boundary        and move over the upper-right corner to the other side of the        control boundary.    -   “Hand-corner up-left”—the predefined object 24 may begin at a        location beyond the upper-left corner of the control boundary        and move over the upper-left corner to the other side of the        control boundary.    -   “Hand-corner down-right”—the predefined object 24 may begin at a        location beyond the lower-right corner of the control boundary        and move over the lower-right corner to the other side of the        control boundary.    -   “Hand-corner down-left”—the predefined object 24 may begin at a        location beyond the lower-left corner of the control boundary        and move over the lower-left corner to the other side of the        control boundary.

FIGS. 5A-5L depict graphical representations of a few exemplary motionpaths (e.g., the illustrated arrows) of gestures, and the gestures'relationship to a control boundary (e.g., the illustrated rectangles).FIG. 6 depicts a few exemplary representations of hand poses that may beused during a gesture, and may affect a type of gesture that is detectedand/or action that is caused by a processor. Each differing combinationof motion path and gesture may result in a differing action.

In some embodiments, the at least one processor is also configured toaccess information associated with at least one control boundary, thecontrol boundary relating to a physical dimension of a device in a fieldof view of the user, or a physical dimension of a body of the user asperceived by the image sensor (operation 240). In some embodiments theprocessor 12 is configured to generate the information associated withthe control boundary prior to accessing the information. However, theinformation may also, for example, be generated by another device,stored in memory 16, and accessed by processor 12. Accessing informationassociated with at least one control boundary may include any operationperformed by processor 12 in which the information associated with theleast one control boundary is acquired by processor 12. For example, theinformation associated with at least one control boundary may bereceived by processor 12 from memory 16, may be received by processor 12from an external device, or may be determined by processor 12.

A control boundary may be determined (e.g., by processor 12 or byanother device) in a number of different ways. As discussed above, acontrol boundary may relate to one or more of a physical dimension of adevice, which may, for example, be in a field of view of the user, aphysical location of the device, the physical location of the device inrelate to the location of the user, physical dimensions of a body asperceived by the image sensor, or a physical location of a user's bodyor body parts as perceived by the image sensor. A control boundary maybe determined from a combination of information related to physicaldevices located in the physical space where the user performs a gestureand information related to the physical dimensions of the user's body inthat the physical space. Moreover, a control boundary may relate to partof a physical device, and location of such part. For example, thelocation of speakers of a device may be used to determine a controlboundary (e.g., the edges and corners of a speaker device), so that if auser performs gestures associated with the control boundary (e.g., adownward gesture along or near the right edge of the control boundary,as depicted, for example, in FIG. 5L), the volume of the speakers may becontrolled by the gesture. A control boundary may also relate one ormore of a specific location on the device, such as the location of themanufacturer logo, or components on the device. Furthermore, the controlboundary may also relate to virtual objects as perceived by the user.Virtual objects may be objects displayed to the user in 3D space in theuser's field of view by a 3D display device or by a wearable displaydevice, such as wearable augmented reality glasses. Virtual objects, forexample, may include icons, images, video, or any kind of visualinformation that can be perceived by the user in real or virtual 3D. Asused in this application, a physical dimension of a device may include adimension of a virtual object.

In some embodiments, the control boundary may relate to physical objectsor devices located temporarily or permanently in a vehicle. For example,physical objects may include hand-held objects associated with the user,such as bags, sunglasses, mobile devices, tablets, game controller, cupsor any object that is not part of the vehicle and is located in thevehicle. Such objects may be considered “temporarily located” in thevehicle because they are not attached to the vehicle and/or can beremoved easily by the user. For example, an object “temporarily located”in the vehicle may include a navigation system (Global PositioningSystem) that can be removed from the vehicle by the user. Physicalobjects may also include objects associated with the vehicle, such as amultimedia system, steering wheel, shift lever or gear selector, displaydevice, or mirrors located in the vehicle, glove compartment, sun-shade,light controller, air-condition shades, windows, seat, or any interfacedevice in the vehicle that may be controlled or used by the driver orpassenger. Such objects may be considered “permanently located” in thevehicle because they are physically integrated in the vehicle,installed, or attached such that they are not easily removable by theuser. Alternatively, or additionally, the control boundary may relate tothe user's body. For example, the control boundary may relate to variousparts of the user's body, including the face, mouth, nose, eyes, hair,lips, neck, ears, or arm of the user. Moreover, the control boundary mayalso relate to objects or body parts associated with one or more personsproximate the user. For example, the control boundary may relate toother person's body parts, including the face, mouth, nose, eyes, hair,lips, neck, or arm of the other person.

In some embodiments, the at least one processor may be configured todetect the user's gestures in relation to the control boundarydetermined and identify an activity or behavior associated with theuser. For example, the at least one processor may detect movement of oneor more physical object (such as a coffee cup or mobile phone) and/orone or more body parts in relation to the control boundary. Based on themovement in relation to the control boundary, the at least one processormay identify or determine the activity or behavior associated with theuser. Exemplary activities or user behavior may include, but are notlimited to, eating or drinking, touching parts of the face, scratchingparts of the face, putting on makeup or fixing makeup, putting onlipstick, looking for sunglasses or eyeglasses, putting on or taking offsunglasses or eyeglasses, changing between sunglasses and eyeglasses,adjusting a position of glasses on the user, yawning, fixing the user'hair, stretching, the user searching their bag or other container, theuser or front seat passenger reaching behind the front row to objects inthe rear seats, manipulating one or more levers for activating turnsignals, a driver turning backward, a driver turning backward to reachfor an object, a driver turning backward to reach for an object in abag, a driver, a driver looking for an item in the glove compartment,adjusting the position or orientation of the side mirrors or mainrear-view mirror(s) located in the car, moving one or more hand-heldobjects associated with the user, operating a hand-held device such as asmartphone or tablet computer, adjusting a seat belt, open or close aseat-belt, modifying in-car parameters such as temperature,air-conditioning, speaker volume, windshield wiper settings, adjustingthe car seat position or heating/cooling function, activating a windowdefrost device to clear fog from windows, manually moving arms and handsto wipe/remove fog or other obstructions from windows, a driver orpassenger raising and placing legs on the dashboard, a driver orpassenger looking down, a driver or other passengers changing seats,placing a baby in a baby-seat, taking a baby out of a baby-seat, placinga child of a child-seat, taking a child out of a child-seat, or anycombination thereof.

In some embodiments, the at least one processor may be configured todetect movement of one or more physical devices, hand-held objects,and/or body parts in relation to the user's body, in order to improvethe accuracy in identifying the user's gesture, determined parametersrelated to driver attentiveness, driver gaze direction and accuracy inexecuting a corresponding command and/or message. By way of example, ifthe user is touching the user's eye, the at least one processor may beable to detect that the user's eye in the control boundary is at leastpartially or fully covered by the user's hand, and determine that theuser is scratching the eye. In this scenario, the user may be driving avehicle and gazing toward the road with the uncovered eye, whilescratching the covered eye. Accordingly, the at least one processor maybe able to disregard the eye that is being touched and/or at leastpartially covered, such that the detection of the user's behavior willnot be influenced by the covered eye, and the at least one processor maystill perform gaze detection based on the uncovered eye.

In some embodiments, the processor may be configured to disregard aparticular gesture, behavior, or activity performed by the user fordetecting the user's gaze direction, or any change thereof. For example,the detection of the user's gaze by the processor may not be influencedby a detection of the user's finger at least partially covering theuser's eye. As such, the at least one processor may be able to avoidfalse detection of gaze due to the partially covered eye, and accuratelyidentify the user's activity, and/or behavior even if other objectand/or body parts are moving, partially covered, or fully covered.

In some embodiments, the processor may be configured to detect theuser's gesture in relation to a control boundary associated with a bodypart of the user in order to improve the accuracy in detecting theuser's gesture. As an example, in the event that at least one processordetects that the user's hand or finger crossed a boundary associatedwith a part of the user body, such as eyes or mouth, the processor mayuse this information to improve the detection of features associatedwith the user, features such as head pose or gaze detection. Forexample, when an object/feature of the user's face is covered partly orfully by the user hand, the processor may ignore detection of thatobject when extracting information related to the user. In one example,when the user's hand covers fully or partly the user mouth, theprocessor may use this information and ignore detecting the user's mouthwhen detecting the user's face to extract the user's head-pose. Asanother example, when the user's hand cross a boundary associated withthe user's eye, the processor may determine that the eye is at leastpartly covered by the user hand or fingers, and that eye should beignored when extracting data associated with the user's gaze. In oneexample, in such event, the gaze detection should be based only on theeye which is not covered. In such an embodiment, the hand, fingers, orother object covering the eye may be detected and ignored, or filteredout of the image information associated with the user's gaze. In anotherexample, when the user finger touches or scratches an area next to theeye, the processor may address to that gesture as “scratching the eye”,and therefore the form of the eye will be distorted during the“scratching the eye” gesture. Therefore, that eye should be ignored forgaze detection during the “scratching the eye” gesture. In anotherexample, a set of gestures associated with interaction with the user'sface or objects placed on the user face such as glasses, can beconsidered as gestures indicating that during the period they areperformed, the level of attentiveness and alertness of the user isdecreased. In one example, the gestures of scratching the eye or fixingglasses' position is considered as distracted gesture, while touchingthe nose or the beard may be considered as non-distracting gestures.

In other embodiments, the processor may be configured to detect anactivity, gesture, or behavior of the user by detecting a location of abody part of the user in relation to a control boundary. For example,the processor may detect an action such as “scratching” the eye, bydetecting the user's hand of finger crossed a boundary associated withthe user's eye/s. In other embodiments, the processor may be configuredto detect an activity, behavior, or gesture of the user by detecting notonly a location of a body part of the user in relation to the controlboundary, but also a location of an object associated with the gesture.For example, the processor may be configured to detect an activity suchas eating, based on a combination of a detection of user's hand crossinga boundary associated with the user's mouth, a detection of an objectwhich is not the user hand but is “connected” to the upper part of theuser hand, and a detection of this object moving with the hand at leastin the motion of the hand up toward the mouth. In another example, theeating activity is detected as long as the hand is within a boundaryassociated with the mouth. In another example, the processor detect aneating activity from the moment the hand with an object attached to itcrossed the boundary associated with the mouth and the hand moved awayfrom the boundary after a predetermined period of time. In anotherexample, the processor may be required to detect also a gestureperformed by the lower part of the user's face, a repeated gesture inwhich the lower part is moving down and up, or right and left or anycombination thereof, in order to identify the user activity as eating.

FIG. 3 depicts an exemplary implementation of a touch-free gesturerecognition system in accordance with some embodiments in which thecontrol boundary may relate to a physical dimension of a device in afield of view of the user. FIG. 4 depicts an exemplary implementation ofa touch-free gesture recognition system in accordance with someembodiments in which the control boundary may relate to a physicaldimension of a body of the user.

As depicted in the example implementation in FIG. 3, user 30 may viewdisplay 4 within the conical or pyramidal volume of space 18 viewable byimage sensor 6. In some embodiments, the control boundary relates tobroken lines AB and CD, which extend perpendicularly from definedlocations on the device, such as, for example, the left and right edgesof display 4. For example, as discussed below, the processor 12 may beconfigured to determine one or more locations in the image informationthat correspond to lines AB and CD. While only broken lines AB and CDare depicted in FIG. 3, associated with the left and right edges ofdisplay 4, in some embodiments the control boundary may additionally oralternatively be associated with the top and bottom edges of display 4,or some other physical dimension of the display, such as a border,bevel, or frame of the display, or a reference presented on the display.Moreover, while the control boundary may be determined based on thephysical dimensions or other aspects of display 4, the control boundarymay also be determined based on the physical dimensions of any otherdevice (e.g., the boundaries or contour of a stationary object).

The processor 12 may be configured to determine the location anddistance of the user from the display 4. For example, the processor 12may use information from a proximity sensor, a depth sensing sensor,information representative of a 3D map in front of the device, or useface detection to determine the location and distance of the user fromthe display 4, and from the location and distance compute a field ofview (FOV) of the user. For example, an inter-pupillary distance in theimage information may be measured and used to determine the location anddistance of the user from the display 4. For example, the processor maybe configured to compare the inter-pupillary distance in the imageinformation to a known or determined inter-pupillary distance associatedwith the user, and determine a distance based on the difference (as theuser stands further from image sensor 6, the inter-pupillary distance inthe image information may decrease). The accuracy of the user distancedetermination may be improved by utilizing the user's age, since, forexample, a younger user may have a smaller inter-pupillary distance.Face recognition may also be applied to identify the user and retrieveinformation related to the identified user. For example, an Internetsocial medium (e.g., Facebook) may be accessed to obtain informationabout the user (e.g., age, pictures, interests, etc.). This informationmay be used to improve the accuracy of the inter-pupillary distance, andthus improve the accuracy of the distance calculation of the user fromthe screen.

The processor 12 may also be configured to determine an average distancedz in front of the user's eyes that the user positions the predefinedobject 24 when performing a gesture. The average distance dz may dependon the physical dimensions of the user (e.g., the length of the user'sforearm), which can be estimated, for example, from the user'sinter-pupillary distance. A range of distances (e.g., dz+Δz throughdz−Δz) surrounding the average distance dz may also be determined.During the performance of a gesture, the predefined object 24 may oftenbe found at a distance in the interval between dz+Δz to dz−Δz. In someembodiments, Δz may be predefined. Alternatively, Δz may be calculatedas a fixed fraction (e.g., 0.2) of dz. As depicted in FIG. 3, brokenline FJ substantially parallel to the display 4 at a distance dz-Δz fromthe user may intersect the broken lines AB and CD at points F and J.Points F and J may be representative of a region of the viewing space ofthe image sensor 6 having semi-apical angle a, indicated by the brokenlines GJ and GF, which serve to determine the control boundary. Thus,for example, if the user's hand 32 is outside of the region bounded bythe lines GJ and GF, the hand 32 may be considered to be outside thecontrol boundary. Thus, in some embodiments, the information associatedwith the control boundary may be, for example, the locations of lines GJand GF in the image information, or information from which the locationsof lines GJ and GF in the image information can be determined.

Alternatively or additionally, in some embodiments, at least oneprocessor is configured to determine the control boundary based, atleast in part, on a dimension of the device (e.g., display 4) as isexpected to be perceived by the user. For example, broken lines BE andBD in FIG. 3, which extend from a location on or near the body of theuser (determined, for example, based on the distance from the imagesensor 6 to the user, the location of the user's face or eyes, and/orthe FOV of the user) to the left and right edges of display 4, arerepresentative of dimensions of display 4 as is expected to be perceivedby the user. That is, based on the distance and orientation of the userrelative to the display 4, the processor may be configured to determinehow the display is likely perceived from the vantage point of the user.(E.g., by determining sight lines from the user to the edges of thedisplay.) Thus, the processor may be configured to determine the controlboundary by determining one or more locations in the image informationthat correspond to lines BE and BD (e.g., based on an analysis of theaverage distance from the user's body that the user positions thepredefined object 24). While only broken lines BE and BD are depicted inFIG. 3, associated with the left and right edges of display 4, in someembodiments the control boundary may additionally or alternatively beassociated with the top and bottom edges of display 4.

Alternatively or additionally, the control boundary may relate to aphysical dimension of a body of the user as perceived by the imagesensor. That is, based on the distance and/or orientation of the userrelative to the display or image sensor, the processor may be configuredto determine a control boundary. The farther the user from the display,the smaller the image sensor's perception of the user, and the smalleran area bounded by the control boundaries. The processor may beconfigured to identify specific portions of a user's body for purposesof control boundary determination. Thus the control boundary may relateto the physical dimensions of the user's torso, shoulders, head, hand,or any other portion or portions of the user's body. The controlboundary may be related to the physical dimension of a body portion byeither relying on the actual or approximate dimension of the bodyportion, or by otherwise using the body portion as a reference forsetting control boundaries. (E.g., a control boundary may be set apredetermined distance from a reference location on the body portion.)

The processor 12 may be configured to determine a contour of a portionof a body of the user (e.g., a torso of the user) in the imageinformation received from image sensor 6. Moreover, the processor 12 maybe configured to determine, for example, an area bounding the user(e.g., a bounding box surrounding the entire user or the torso of theuser). For example, the broken lines KL and MN depicted in FIG. 4 areassociated with the left and right sides of a contour or area boundingthe user. The processor 12 may be configured to determine the controlboundary by determining one or more locations in the image informationthat correspond to the determined contour or bounding area. Thus, forexample, the processor 12 may be configured to determine the controlboundary by detecting a portion of a body of the user, other than theuser's hand (e.g., a torso), and to define the control boundary based onthe detected body portion. While only broken lines associated with theleft and right sides of the user are depicted in FIG. 4, in someembodiments the control boundary may additionally or alternatively beassociated with the top and bottom of the contour or bounding area.

In some embodiments, the at least on processor may be configured tocause a visual or audio indication when the control boundary is crossed.For example, if an object in the image information associated withpredefined object 24 crosses the control boundary, this indication mayinform the user that a gesture performed within a predefined amount oftime will be interpreted as gesture associated with the controlboundary. For example, if an edge of the control boundary is crossed, anicon may begin to fade-in on display 4. If the gesture is completedwithin the predefined amount of time, the icon may be finalized; if thegesture is not completed within the predefined amount of time, the iconmay no longer be presented on display 4.

While a control boundary is discussed above with respect to a singleuser, the same control boundary may be associated with a plurality ofusers. For example, when a gesture performed by one user is detected, acontrol boundary may be accessed that was determined for another user,or that was determined for a plurality of users. Moreover, the controlboundary may be determined based on an estimated location of a user,without actually determining the location of the user.

In some embodiments, the at least one processor is also configured tocause an action associated with the detected gesture, the detectedgesture location, and a relationship between the detected gesturelocation and the control boundary (operation 250). As discussed above,an action caused by a processor may be, for example, generation of amessage or execution of a command associated with the gesture. A messageor command may be, for example, addressed to one or more operatingsystems, one or more services, one or more applications, one or moredevices, one or more remote applications, one or more remote services,or one or more remote devices. In some embodiments, the action includesan output to a user. For example, the action may provide an indicationto a user that some event has occurred. The indication may be, forexample, visual (e.g., using display 4), audio, tactile, ultrasonic, orhaptic. An indication may be, for example, an icon presented on adisplay, change of an icon presented on a display, a change in color ofan icon presented on a display, an indication light, an indicator movingon a display, a directional vibration indication, or an air tactileindication. Moreover, for example, the indicator may appear on top ofall other images appearing on the display.

In some embodiments, memory 16 stores data (e.g., a look-up table) thatprovides, for one or more predefined gestures and/or gesture locations,one or more corresponding actions to be performed by the processor 12.Each gesture that is associated with a control boundary may becharacterized by one or more of the following factors: the startingpoint of the gesture, the motion path of the gesture (e.g., asemicircular movement, a back and forth movement, an “S”-like path, or atriangular movement), the specific edges or corners of the controlboundary crossed by the path, the number of times an edge or corner ofthe control boundary is crossed by the path, and where the path crossesedges or corners of the control boundary. By way of example only, agesture associated with a right edge of a control boundary may toggle acharm menu, a gesture associated with a top edge of a control boundaryor bottom edge of a control boundary may toggle an application command,a gesture associated with a left edge of a control boundary may switchto a last application, and a gesture associated with both a right edgeand a left edge of a control boundary (e.g., as depicted in FIG. 5K) mayselect an application or start menu. As an additional example, if agesture crosses a right edge of a control boundary, an image of avirtual page may progressively cross leftward over the right edge of thedisplay so that the virtual page is progressively displayed on thedisplay; the more the predefined object associated with the user ismoved away from the right edge of the screen, the more the virtual pageis displayed on the screen.

For example, processor 12 may be configured to cause a first action whenthe gesture is detected crossing the control boundary, and to cause asecond action when the gesture is detected within the control boundary.That is, the same gesture may result in a different action based onwhether the gesture crosses the control boundary. For example, a usermay perform a right-to-left gesture. If the right-to-left gesture isdetected entirely within the control boundary, the processor may beconfigured, for example, to shift a portion of the image presented ondisplay 4 to the left (e.g., a user may use the right-to-left gesture tomove a photograph presented on display 4 in a leftward direction). If,however, the right-to-left gesture is detected to cross the right edgeof the control boundary, the processor may be configured, by way ofexample only, to replace the image presented on display 4 with anotherimage (e.g., a user may use the right-to-left gesture to scroll throughphotographs in a photo album).

Moreover, for example, the processor 12 may be configured to distinguishbetween a plurality of predefined gestures to cause a plurality ofactions, each associated with a differing predefined gesture. Forexample, if differing hand poses cross the control boundary at the samelocation, the processor may cause differing actions. For example, apointing finger crossing the control boundary may cause a first action,while an open hand crossing the control boundary may cause a differingsecond action. As an alternative example, if a user performs aright-to-left gesture that is detected to cross the right edge of thecontrol boundary, the processor may cause a first action, but crossingthe control boundary in the same location with the same hand pose, butfrom a different direction, may cause a second action. As anotherexample, a gesture performed in a first speed may cause a first action;the same gesture, when performed in second speed, may cause a secondaction. As another example, a left-to-right gesture performed in a firstmotion path representative of the predefined object (e.g., the user'shand) moving a first distance (e.g. 10 cm) may cause a first action; thesame gesture performed in a second motion path representative of thepredefined object moving a second distance (e.g. 30 cm) may cause asecond action The first and second actions could be any message orcommand. By way of example only, the first action may replace the imagepresented on display 4 with a previously viewed image, while the secondaction may cause a new image to be displayed.

Moreover, for example, the processor 12 may be configured to generate aplurality of actions, each associated with a differing relative positionof the gesture location to the control boundary. For example, if a firstgesture (e.g. left to right gesture) crosses a control boundary near thecontrol boundary top, the processor may be configured to generate afirst action, while if the same first gesture, crosses the controlboundary near the control boundary bottom, the processor may beconfigured to generate a second action. Another example, if a gesturethat crosses the control boundary begins at a location outside of thecontrol boundary by more than a predetermined distance, the processormay be configured to generate a first action. However, if a gesture thatcrosses the control boundary begins at a location outside of the controlboundary by less than a predetermined distance, the processor may beconfigured to generate a second action. By way of example only, thefirst action may cause an application to shut down while the secondaction may close a window of the application.

Moreover, for example, the action may be associated with a predefinedmotion path associated with the gesture location and the controlboundary. For example, memory 16 may store a plurality of differingmotion paths, with each detected path causing a differing action. Apredefined motion path may include a set of directions of a gesture(e.g., left, right, up down, left-up, left-down, right-up, orright-down) in a chronological sequence. Or, a predefined motion pathmay be one that crosses multiple boundaries (e.g., slicing a corner orslicing across entire display), or one that crosses a boundary in aspecific region (e.g., crosses top right).

A predefined motion path may also include motions associated with aboundary, but which do not necessarily cross a boundary. (E.g., up downmotion outside right boundary; up down motion within right boundary).

Moreover, a predefined motion path may be defined by a series of motionsthat change direction in a specific chronological sequence. (E.g., afirst action may be caused by down-up, left right; while a second actionmay be caused by up-down, left-right).

Moreover, a predefined motion path may be defined by one or more of thestarting point of the gesture, the motion path of the gesture (e.g., asemicircular movement, a back and forth movement, an “S”-like path, or atriangular movement), the specific edges or corners of the controlboundary crossed by the path, the number of times an edge or corner ofthe control boundary is crossed by the path, and where the path crossesedges or comers of the control boundary.

In some embodiments, as discussed above, the processor may be configuredto determine the control boundary by detecting a portion of a body ofthe user, other than the user's hand (e.g., a torso), and to define thecontrol boundary based on the detected body portion. In someembodiments, the processor may further be configured to generate theaction based, at least in part, on an identity of the gesture, and arelative location of the gesture to the control boundary. Each differentpredefined gesture (e.g., hand pose) may have a differing identity.Moreover, a gesture may be performed at different relative locations tothe control boundary, enabling each different combination ofgesture/movement relative to the control boundary to cause a differingaction.

In addition, the processor 12 may be configured to perform differentactions based on the number of times a control boundary is crossed or alength of the path of the gesture relative to the physical dimensions ofthe user's body. For example, an action may be caused by the processorbased on a number of times that each edge or corner of the controlboundary is crossed by a path of a gesture. By way of another example, afirst action may be caused by the processor if a gesture, having a firstlength, is performed by a first user of a first height. The first actionmay also be caused by the processor if a gesture, having a secondlength, is performed by a second user of a second height, if the secondlength as compared to the second height is substantially the same as thefirst length as compared to the first height. In this example scenario,the processor may cause a second action if a gesture, having the secondlength, is performed by the first user.

The processor 12 may be configured to cause a variety of actions forgestures associated with a control boundary. For example, in addition tothe examples discussed above, the processor 12 may be configured toactivate a toolbar presented on display 4, which is associated with aparticular edge of the control boundary, based on the gesture location.That is, for example, if it is determined that the gesture crosses aright edge of the control boundary, a toolbar may be displayed along theright edge of display 4. Additionally, for example, the processor 12 maybe configured to cause an image to be presented on display 4 based onthe gesture, the gesture location, and the control boundary (e.g., anedge crossed by the gesture).

By configuring a processor to cause an action associated with a detectedgesture, the detected gesture location, and a relationship between thedetected gesture location and a control boundary, a more robust numberof types of touch-free gestures by a user can be performed and detected.Moreover, touch-free gestures associated with a control boundary mayincrease the usability of a device that permits touch-free gestures toinput data or control operation of the device.

Certain features which, for clarity, are described in this specificationin the context of separate embodiments, may also be provided incombination in a single embodiment. Conversely, various features which,for brevity, are described in the context of a single embodiment, mayalso be provided in multiple embodiments separately or in any suitablesubcombination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Exemplary embodiments have been described. Other embodiments are withinthe scope of the following claims. The disclosed embodiments are alsodescribed by the following numbered paragraphs:

1. A touch-free gesture recognition system, comprising: at least oneprocessor configured to: receive image information from an image sensor;detect in the image information a gesture performed by a user; detect alocation of the gesture in the image information; access informationassociated with at least one control boundary, the control boundaryrelating to a physical dimension of a device in a field of view of theuser, or a physical dimension of a body of the user as perceived by theimage sensor; and cause an action associated with the detected gesture,the detected gesture location, and a relationship between the detectedgesture location and the control boundary.

2. The system of paragraph 1, wherein the processor is furtherconfigured to generate information associated with at least one controlboundary prior to accessing the information.

3. The system of paragraph 1, wherein the processor is furtherconfigured to determine the control boundary based, at least in part, ona dimension of the device as is expected to be perceived by the user.

4. The system of paragraph 3, wherein the control boundary is determinedbased, at least in part, on at least one of an edge or corner of thedevice as is expected to be perceived by the user.

5 The system of paragraph 1, wherein the processor is further configuredto distinguish between a plurality of predefined gestures to cause aplurality of actions, each associated with a differing predefinedgesture.

6. The system of paragraph 1, wherein the processor is furtherconfigured to generate a plurality of actions, each associated with adiffering relative position of the gesture location to the controlboundary.

7. The system of paragraph 1, wherein the processor is furtherconfigured to determine the control boundary by detecting a portion of abody of the user, other than the user's hand, and to define the controlboundary based on the detected body portion, and wherein the processoris further configured to generate the action based, at least in part, onan identity of the gesture, and a relative location of the gesture tothe control boundary.

8. The system of paragraph 1, wherein the processor is furtherconfigured to determine the control boundary based on a contour of atleast a portion of a body of the user in the image information.

9. The system of paragraph 1, wherein the device includes a display, andwherein the processor is further configured to determine the controlboundary based on dimensions of the display.

10. The system of paragraph 9, wherein processor is further configuredto determine the control boundary based on at least one of an edge orcorner of a display associated with the device.

11. The system of paragraph 9, wherein the processor is furtherconfigured to activate a toolbar associated with a particular-edgebased, at least in part, on the gesture location.

12. The system of paragraph 1, wherein the action is related to a numberof times at least one of an edge or corner of the control boundary iscrossed by a path of the gesture.

13. The system of paragraph 1, wherein the action is associated with apredefined motion path associated with the gesture location and thecontrol boundary.

14. The system of paragraph 1, wherein the action is associated with apredefined motion path associated with particular edges or cornerscrossed by the gesture location.

15. The system of paragraph 1, wherein the processor is furtherconfigured to detect a hand in predefined location relating to thecontrol boundary and initiate detection of the gesture based on thedetection of the hand at the predefined location.

16. The system of paragraph 1, wherein the processor is furtherconfigured to cause at least one of a visual or audio indication whenthe control boundary is crossed.

17. The system of paragraph 1, wherein the control boundary isdetermined, at least in part, based on a distance between the user andthe image sensor.

18. The system of paragraph 1, wherein the control boundary isdetermined, at least in part, based on a location of the user inrelation to the device.

19. A method for a touch-free gesture recognition system, comprising:receiving image information from an image sensor; detecting in the imageinformation a gesture performed by a user; detecting a location of thegesture in the image information; accessing information associated withat least one control boundary, the control boundary relating to aphysical dimension of a device in a field of view of the user, or aphysical dimension of a body of the user as perceived by the imagesensor; causing an action associated with the detected gesture, thedetected gesture location, and a relationship between the detectedgesture location and the control boundary.

20. The method of paragraph 19, further comprising determining thecontrol boundary based on a dimension of the device as is expected to beperceived by the user.

21. The method of paragraph 20, wherein the control boundary isdetermined based, at least in part, on at least one of an edge or cornerof the device as is expected to be perceived by the user.

22. The method of paragraph 19, further comprising generating aplurality of actions, each associated with a differing relative positionof the gesture location to the control boundary.

23. The method of paragraph 19, further comprising determining thecontrol boundary by detecting a portion of a body of the user, otherthan the user's hand, and defining the control boundary based on thedetected body portion, and generating the action based, at least inpart, on an identity of the gesture, and a relative location of thegesture to the control boundary.

24. The method of paragraph 19, further comprising determining thecontrol boundary based on dimensions of the display.

25. The method of paragraph 24, further comprising activating a toolbarassociated with a particular edge based, at least in part, on thegesture location.

26. The method of paragraph 19, wherein the control boundary isdetermined based on at least one of an edge or a corner of the device.

27. The method of paragraph 19, wherein the action is associated with apredefined motion path associated with the gesture location and thecontrol boundary.

28. The method of paragraph 19, wherein the action is associated with apredefined motion path associated with particular edges or cornerscrossed by the gesture location.

29. The method of paragraph 19, further comprising detecting a hand inpredefined location relating to the control boundary and initiatingdetection of the gesture based on the detection of the hand at thepredefined location

30. The method of paragraph 19, wherein the control boundary isdetermined, at least in part, based on a distance between the user andthe image sensor.

31. A touch-free gesture recognition system, comprising: at least oneprocessor configured to: receive image information associated with auser from an image sensor; access information associated with a controlboundary relating to a physical dimension of a device in a field of viewof the user, or a physical dimension of a body of the user as perceivedby the image sensor; detect in the image information a gesture performedby a user in relation to the control boundary; identify a user behaviorbased on the detected gesture; and generate a message or a command basedon the identified user behavior.

32. The system of paragraph 31, wherein the at least one processor isfurther configured to detect the gesture by detecting a movement of atleast one of a device, an object, or a body part relative to a body ofthe user.

33. The system of paragraph 32, wherein the predicted user behaviorincludes prediction of one or more activity the user performssimultaneously.

34. The system of paragraph 33, wherein the predicted one or moreactivity the user performs includes reaching for a mobile device,operate a mobile device, operate an application, controlling amultimedia device in the vehicle.

35. The system of paragraph 32, wherein the at least one processor isfurther configured to determine at least one of a level of attentivenessof the user or a gaze direction of the user based on the detectedmovement of at least one of the device, the object, or the body partrelative to the body of the user.

36. The system of paragraph 32, wherein the at least one processor isfurther configured to improve an accuracy in detecting the gestureperformed by the user or generating the message or the command, based onthe detected movement of at least one of the device, the object, or thebody part relative to the body of the user.

37. The system of paragraph 32, wherein the detected gesture performedby the user is associated with an interaction with a face of the user.

38. The system of paragraph 37, wherein the interaction comprisesplacing an object on the face of the user, or touching the face of theuser.

39. The system of paragraph 31, wherein the at least one processor isfurther configured to: detect, in the image information, an object in aboundary associated with at least a part of a body of the user; ignorethe detected object in the image information; and detect, based on theimage information other than the ignored detected object, at least oneof the gesture performed by the user, the user behavior, a gaze of theuser, or an activity of the user.

40. The system of paragraph 39, wherein the detected object comprises afinger or a hand of the user.

41. The system of paragraph 31, wherein the at least one processor isfurther configured to: detect a hand of the user in a boundaryassociated with a part of a body of the user; detect an object in thehand of the user, wherein the object is moving with the hand toward thepart of the body of the user; and identify the user behavior based onthe detected hand and the detected object in the boundary associatedwith the part of the body of the user.

42. The system of paragraph 31, wherein the at least one processor isfurther configured to: detect a hand of the user in a boundaryassociated with a part of a body of the user; detect an object in thehand of the user; detect the hand of the user moving away from theboundary associated with the part of the body of the user after apredetermined period of time; and identify the user behavior based onthe detected hand and the detected object.

43. The system of paragraph 31, wherein the at least one processor isfurther configured to: determine that the gesture performed by the useris an eating gesture by determining that the gesture is a repeatedgesture in a lower portion of the user's face, in which the lowerportion of the user's face moves up and down, left and right, or acombination thereof.

44. A touch-free gesture recognition system, comprising: at least oneprocessor configured to: receive image information from an image sensor;detect in the image information a gesture performed by a user; detect alocation of the gesture in the image information; access informationassociated with a control boundary, the control boundary relating to aphysical dimension of a device in a field of view of the user, or aphysical dimension of a body of the user as perceived by the imagesensor; predict a user behavior, based on at least one of the detectedgesture, the detected gesture location, or a relationship between thedetected gesture location and the control boundary; and generate amessage or a command based on the predicted user behavior.

45. The system of paragraph 44, wherein the at least one processor isconfigured to predict the user behavior using a machine learningalgorithm.

46. The system of paragraph 44, wherein the at least one processor isfurther configured to predict an intention of the user to perform aparticular gesture or activity by: detecting a movement patterns withina sequence of the received image information; and correlating, using amachine learning algorithm, the detected movement pattern to theintention of the user to perform the particular gesture.

47. The system of paragraph 44, wherein the user is located in avehicle, and wherein the at least one processor is further configured topredict an intention of the user to perform a particular gesture by:receiving sensor information from a second sensor associated with thevehicle; detecting a pattern within a sequence of the received sensorinformation; and correlating, using a machine learning algorithm, thesensor information to one or more detected gesture or activity the userperforms.

48. The system of paragraph 47, wherein the received sensor informationis indicative of a location of a body part of the user in athree-dimensional space, or a movement vector of a body part of theuser.

49. The system of paragraph 47, wherein the second sensor associatedwith the vehicle of the user comprises a light sensor, an infraredsensor, an ultrasonic sensor, a proximity sensor, a reflectivity sensor,a photosensor, an accelerometer, or a pressure sensor.

50. The system of paragraph 44, wherein the at least one processor isconfigured to predict the user behavior based on the control boundaryand at least one of the detected gesture, the detected gesture location,or the relationship between the detected gesture location and thecontrol boundary.

51. The system of paragraph 50, wherein the at least one processor isfurther configured to correlate, using a machine learning algorithm, thereceived sensor information to the intention of the user to perform atleast one of the particular gesture or the activity.

52. The system of paragraph 50, wherein the received sensor informationis data related to an environment in which the user is located.

53. The system of paragraph 44, wherein the at least one processor isfurther configured to: receive, from a second sensor, data associatedwith a vehicle of the user, the data associated with the vehicle of theuser comprising at least one of speed, acceleration, rotation, movement,operating status, or active application associated with the vehicle; andgenerate a message or a command based on at least one of the dataassociated with the vehicle and the predicted user behavior.

54. The system of paragraph 44, wherein the at least one processor isfurther configured to: receive data associated with at least one of pastpredicted events or forecasted events, the at least one of pastpredicted events or forecasted events being associated with actions,gestures, or behavior of the user; and generate a message or a commandbased on at least the received data.

55. The system of paragraph 44, wherein the user is located in avehicle, and the at least one processor is further configured to:receive, from a second sensor, data associated with a speed of thevehicle, an acceleration of the vehicle, a rotation of the vehicle, amovement of the vehicle, an operating status of the vehicle, or anactive application associated with the vehicle; and predict the userbehavior, an intention to perform a gesture, or an intention to performan activity using the received data from the second sensor.

56. The system of paragraph 44, wherein the at least one processor isfurther configured to: receive data associated with at least one of pastpredicted events or forecasted events, the at least one of pastpredicted events or forecasted events being associated with actions,gestures, or behavior of the user; and predict at least one of the userbehavior, an intention to perform a gesture, or an intention to performan activity based on the received data.

57. The system of paragraph 44, wherein the at least one processor isfurther configured to predict the user behavior, based on detecting andclassifying the gesture in relation to at least one of the body of theuser, a face of the user, or an object proximate the user.

58. The system of paragraph 57, wherein the at least one processor isfurther configured to predict at least one of the user behavior, useractivity, or level of attentiveness to the road, based on detecting andclassifying the gesture in relation to at least one of the body of theuser or the object proximate the user.

59. The system of paragraph 57, wherein the at least one processor isfurther configured to predict the user behavior, the user activity, orthe level of attentiveness to the road, based on detecting a gestureperformed by a user toward a mobile device or an application running ona digital device.

60. The system of paragraph 44, wherein the predicted user behaviorfurther comprises at least one of the user performing a particularactivity, the user being involved in a plurality of activitiessimultaneously, a level of attentiveness, a level of attentiveness tothe road, a level of awareness, or an emotional response of the user.

61. The system of paragraph 60, wherein the attentiveness of the user tothe road is predicted by detecting at least one of a gesture performedby the user toward a mirror in a car or a gestured performed by the userto fix the side mirrors.

62. The system of paragraph 44, wherein the at least one processor isfurther configured to predict a change in a gaze direction of the userbefore, during, and after the gesture performed by the user, based on acorrelation between the detected gesture and the predicted change ingaze direction of the user.

63. The system of paragraph 44, wherein the at least one processor isfurther configured to: receive, from a second sensor, data associatedwith a vehicle of the user, the data associated with the vehicle of theuser comprising at least one of speed, acceleration, rotation, movement,operating status, or active application associated with the vehicle; andchange an operation mode of the vehicle based on the received data.

64. The system of paragraph 63, wherein the at least one processor isfurther configured to detect a level of attentiveness of the user to theroad during the change in operation mode of the vehicle by: detecting atleast one of a behavior or an activity of the user before the change inoperation mode and during the change in operation mode.

65. The system of paragraph 64, wherein the change in operation mode ofthe vehicle comprises changing between a manual driving mode and anautonomous driving mode.

66. The system of paragraph 44, wherein the at least one processor isfurther configured to predict the user behavior using informationassociated with the detected gesture performed by the user, theinformation comprising at least one of speed, smoothness, direction,motion path, continuity, location, or size.

67. A touch-free gesture recognition system, comprising: at least oneprocessor configured to: receive image information from an image sensor;detect in the image information at least one of a gesture or an activityperformed by the user; and predict a change in gaze direction of theuser before, during, and after at least one of the gesture or theactivity is performed by the user, based on a correlation between atleast one of the detected gesture or the detected activity, and thechange in gaze direction of the user.

68. The system of paragraph 67, wherein the at least one processor isfurther configured to predict the change in the gaze direction of theuser based on historical information associated with a previousoccurrence of the gesture, the activity, or a behavior of the user,wherein the historical information indicates a previously determineddirection of gaze of the user before, during, and after the associatedgesture, activity, or behavior of the user.

69. The system of paragraph 67, wherein the at least one processor isfurther configured to predict the change in the gaze direction of theuser using information associated with features of the detected gestureor the detected activity performed by the user.

70. The system of paragraph 69, wherein the information associated withfeatures of the detected gesture or the detected activity are indicativeof a speed, a smoothness, a direction, a motion path, a continuity, alocation, or a size of the detected gesture or detected activity.

71. The system of paragraph 70, wherein the information associated withfeatures of the detected gesture or the detected activity are associatedwith a hand of the user, a finger of the user, a body part of the user,or an object moved by the user.

72. The system of paragraph 71, wherein the at least one processor isfurther configured to predict the change in the gaze direction of theuser based on a detection of an activity performed by the user, behaviorassociated with a passenger, or interaction between the user and thepassenger.

73. The system of paragraph 67, wherein the user is located in avehicle, and the at least one processor is further configured to predictthe change in gaze direction of the user based on detection of at leastone of a level of attentiveness of the user to the road, or an eventtaking place within the vehicle.

74. The system of paragraph 67, wherein the user is located in avehicle, and the at least one processor is further configured to predictthe change in gaze direction of the user based on: a detection of alevel of attentiveness of the user to the road, and a detection of atleast one of the gesture performed by the user, an activity performed bythe user, a behavior of the user, or an event taking place within avehicle.

75. The system of paragraph 67, wherein the at least one processor isfurther configured to predict a level of attentiveness of the user by:receiving gesture information associated with a gesture of the userwhile operating a vehicle; correlating the received information withevent information about an event associated with the vehicle;correlating the gesture information and event information with a levelof attentiveness of the user; and predicting the level of attentivenessof the user based on subsequent detection of the event and the gesture.

76. The system of paragraph 67, wherein the at least one processor isfurther configured to predict the change in the gaze direction of theuser based on information associated with the gesture performed by theuser, wherein the information comprises at least one of a frequency ofthe gesture, location of the gesture in relation to a body part of theuser, or location of the gesture in relation to an object proximate theuser in a vehicle.

77. The system of paragraph 67, wherein the at least one processor isfurther configured to correlate at least one of the gesture performed bythe user, a location of the gesture, a nature of the gesture, orfeatures associated with the gesture to a behavior of the user.

78. The system of paragraph 67, wherein: the user is a driver of avehicle, and the at least one processor is further configured tocorrelate the gesture performed by the user to a response time of theuser to an event associated with the vehicle.

79. The system of paragraph 78, wherein the response time of the usercomprises a response time of the user to a transitioning of an operationmode of the vehicle.

80. The system of paragraph 79, wherein the transitioning of theoperation mode of the vehicle comprises changing from an autonomousdriving mode to a manual driving mode.

81. The system of paragraph 67, wherein: the user is a passenger of avehicle, and the at least one processor is further configured to:correlate the gesture performed by the user to at least one of a changein a level of attentiveness of a driver of the vehicle, a change in agaze direction of the driver, or a predicted gesture to be performed bythe driver.

82. The system of paragraph 67, wherein the at least one processor isfurther configured to correlate, using a machine learning algorithm, thegesture performed by the user to the change in gaze direction of theuser before, during, and after the gesture is performed.

83. The system of paragraph 67, wherein the at least one processor isfurther configured to predict, using a machine learning algorithm, thechange in gaze direction of the user based on the gesture performed bythe user and as a function of time.

84. The system of paragraph 67, wherein the at least one processor isfurther configured to predict, using a machine learning algorithm, atleast one of a time or a duration of the change in gaze direction of theuser based on information associated with previously detected activitiesof the user.

85. The system of paragraph 67, wherein the at least one processor isfurther configured to predict, using a machine learning algorithm, thechange in gaze direction of the user based on data obtained from one ormore devices, applications, or sensors associated with a vehicle thatthe user is driving.

86. The system of paragraph 67, wherein the at least one processor isfurther configured to predict, using a machine learning algorithm, asequence or a frequency of the change in gaze direction of the usertoward an object proximate the user, by detecting at least one of anactivity of the user, the gesture performed by the user, or an objectassociated with the gesture.

87. The system of paragraph 67, wherein the at least one processor isfurther configured to predict, using a machine learning algorithm, alevel of attentiveness of the user based on features associated with thechange in gaze direction of the user.

88. The system of paragraph 87, wherein the features associated with achange in gaze direction of the user comprise at least one of a time,sequence, or frequency of the change in gaze direction of the user.

89. The system of paragraph 67, wherein the detected gesture performedby the user is associated with at least one of: a body disturbance; amovement a portion of a body of the user; a movement of the entire bodyof the user; or a response of the user to at least one of a touch fromanother person, behavior of another person, a gesture of another person,or activity of another person.

90. The system of paragraph 67, wherein the at least one processor isfurther configured to predict the change in gaze direction of the userin a form of a distribution function.

91. A touch-free gesture recognition system, comprising: at least oneprocessor configured to: receive image information associated with auser from an image sensor; access information associated with a controlboundary relating to a physical dimension of a device in a field of viewof the user, or a physical dimension of a body of the user as perceivedby the image sensor; detect in the image information a gesture performedby a user in relation to the control boundary; identify a user behaviorbased on the detected gesture; and generate a message or a command basedon the identified user behavior.

92. A system, comprising: at least one processor configured to: receiveimage information from an image sensor; detect in the image informationat least one of a gesture or an activity performed by the user; predicta change in gaze direction of the user before, during, and after atleast one of the gesture or the activity is performed by the user, basedon a correlation between at least one of the detected gesture or thedetected activity, and the change in gaze direction of the user; andcontrol an operation of a vehicle of the user based on the predictedchange in gaze direction of the user.

Embodiments of the present disclosure may also include methods andcomputer-executable instructions stored in one or more non-transitorycomputer readable media, consistent with the numbered paragraphs aboveand the embodiments disclosed herein.

What is claimed is:
 1. A touch-free gesture recognition system,comprising: at least one processor configured to: receive imageinformation from an image sensor; detect in the image information agesture performed by a user; detect a location of the gesture in theimage information; access information associated with at least onecontrol boundary, the control boundary relating to a physical dimensionof a device in a field of view of the user, or a physical dimension of abody of the user as perceived by the image sensor; and cause an actionassociated with the detected gesture, the detected gesture location, anda relationship between the detected gesture location and the controlboundary.
 2. The system of claim 1, wherein the processor is furtherconfigured to generate information associated with at least one controlboundary prior to accessing the information.
 3. The system of claim 1,wherein the processor is further configured to determine the controlboundary based, at least in part, on a dimension of the device as isexpected to be perceived by the user.
 4. The system of claim 3, whereinthe control boundary is determined based, at least in part, on at leastone of an edge or corner of the device as is expected to be perceived bythe user.
 5. The system of claim 1, wherein the processor is furtherconfigured to distinguish between a plurality of predefined gestures tocause a plurality of actions, each associated with a differingpredefined gesture.
 6. The system of claim 1, wherein the processor isfurther configured to generate a plurality of actions, each associatedwith a differing relative position of the gesture location to thecontrol boundary.
 7. The system of claim 1, wherein the processor isfurther configured to determine the control boundary by detecting aportion of a body of the user, other than the user's hand, and to definethe control boundary based on the detected body portion, and wherein theprocessor is further configured to generate the action based, at leastin part, on an identity of the gesture, and a relative location of thegesture to the control boundary.
 8. The system of claim 1, wherein theprocessor is further configured to determine the control boundary basedon a contour of at least a portion of a body of the user in the imageinformation.
 9. The system of claim 1, wherein the device includes adisplay, and wherein the processor is further configured to determinethe control boundary based on dimensions of the display.
 10. The systemof claim 9, wherein processor is further configured to determine thecontrol boundary based on at least one of an edge or corner of a displayassociated with the device.
 11. The system of claim 9, wherein theprocessor is further configured to activate a toolbar associated with aparticular-edge based, at least in part, on the gesture location. 12.The system of claim 1, wherein the action is related to a number oftimes at least one of an edge or corner of the control boundary iscrossed by a path of the gesture.
 13. The system of claim 1, wherein theaction is associated with a predefined motion path associated with thegesture location and the control boundary.
 14. The system of claim 1,wherein the action is associated with a predefined motion pathassociated with particular edges or corners crossed by the gesturelocation.
 15. The system of claim 1, wherein the processor is furtherconfigured to detect a hand in predefined location relating to thecontrol boundary and initiate detection of the gesture based on thedetection of the hand at the predefined location.
 16. The system ofclaim 1, wherein the processor is further configured to cause at leastone of a visual or audio indication when the control boundary iscrossed.
 17. The system of claim 1, wherein the control boundary isdetermined, at least in part, based on a distance between the user andthe image sensor.
 18. The system of claim 1, wherein the controlboundary is determined, at least in part, based on a location of theuser in relation to the device.
 19. A method for a touch-free gesturerecognition system, comprising: receiving image information from animage sensor; detecting in the image information a gesture performed bya user; detecting a location of the gesture in the image information;accessing information associated with at least one control boundary, thecontrol boundary relating to a physical dimension of a device in a fieldof view of the user, or a physical dimension of a body of the user asperceived by the image sensor;
 20. A non-transitory computer-readablemedium storing instructions which, when executed, configure at least oneprocessor to perform operations for touch-free gesture recognition, theoperations comprising: receiving image information associated with auser from an image sensor; accessing information associated with acontrol boundary relating to a physical dimension of a device in a fieldof view of the user, or a physical dimension of a body of the user asperceived by the image sensor; detecting in the image information agesture performed by a user in relation to the control boundary;identifying a user behavior based on the detected gesture; andgenerating a message or a command based on the identified user behavior.